--- /dev/null
+<?xml version="1.0" encoding="utf-8" ?>
+<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
+ xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+ x:Class="Xamarin.Forms.Controls.Issues.Issue7035">
+ <Grid>
+ <Grid.RowDefinitions>
+ <RowDefinition Height="300"/>
+ <RowDefinition Height="400"/>
+ </Grid.RowDefinitions>
+ <BoxView BackgroundColor="Red" WidthRequest="400" HeightRequest="300" HorizontalOptions="CenterAndExpand" VerticalOptions="CenterAndExpand"/>
+ <CarouselView
+ x:Name="CV"
+ HeightRequest="225"
+ HorizontalOptions="Center"
+ VerticalOptions="CenterAndExpand"
+ Margin="15,10,0,20">
+ <CarouselView.ItemsLayout>
+ <LinearItemsLayout
+ Orientation="Horizontal"
+ ItemSpacing="25" />
+ </CarouselView.ItemsLayout>
+ <CarouselView.ItemTemplate>
+ <DataTemplate>
+ <Frame
+ Padding="0"
+ Margin="0"
+ HeightRequest="200"
+ WidthRequest="300"
+ BorderColor="LightGray"
+ CornerRadius="10"
+ HasShadow="False"
+ IsClippedToBounds="True">
+ <Grid
+ ColumnSpacing="0"
+ RowSpacing="0">
+ <Grid.RowDefinitions>
+ <RowDefinition Height="70*" />
+ <RowDefinition Height="15*" />
+ <RowDefinition Height="15*" />
+ </Grid.RowDefinitions>
+ <Image
+ Grid.Row="0"
+ Aspect="Fill"
+ Source="xamarinlogo" />
+ <Label
+ Grid.Row="1"
+ Margin="20,0,0,0"
+ FontSize="Medium"
+ Text="SUB"
+ HorizontalOptions="Start"
+ VerticalOptions="End" />
+ <Label
+ Grid.Row="2"
+ Margin="20,0,0,0"
+ FontSize="Large"
+ Text="TITLE"
+ HorizontalOptions="Start"
+ VerticalOptions="Start" />
+ <Image
+ Margin="0,0,8,0"
+ Grid.Row="1"
+ Grid.RowSpan="2"
+ HorizontalOptions="End"
+ Aspect="AspectFit"
+ Source="xamarinlogo" />
+ </Grid>
+ </Frame>
+ </DataTemplate>
+ </CarouselView.ItemTemplate>
+ </CarouselView>
+
+
+ <CarouselView
+ Grid.Row="1"
+ x:Name="CV2"
+ HeightRequest="225"
+ Margin="15,10,0,20">
+ <CarouselView.ItemsLayout>
+ <LinearItemsLayout
+ Orientation="Horizontal"
+ ItemSpacing="25" />
+ </CarouselView.ItemsLayout>
+ <CarouselView.ItemTemplate>
+ <DataTemplate>
+ <Frame
+ Padding="0"
+ Margin="0"
+ HeightRequest="200"
+ WidthRequest="300"
+ BorderColor="LightGray"
+ CornerRadius="10"
+ HasShadow="False"
+ IsClippedToBounds="True">
+ <Grid
+ ColumnSpacing="0"
+ RowSpacing="0">
+ <Grid.RowDefinitions>
+ <RowDefinition Height="70*" />
+ <RowDefinition Height="15*" />
+ <RowDefinition Height="15*" />
+ </Grid.RowDefinitions>
+ <Image
+ Grid.Row="0"
+ Aspect="Fill"
+ Source="xamarinlogo" />
+ <Label
+ Grid.Row="1"
+ Margin="20,0,0,0"
+ FontSize="Medium"
+ Text="SUB"
+ HorizontalOptions="Start"
+ VerticalOptions="End" />
+ <Label
+ Grid.Row="2"
+ Margin="20,0,0,0"
+ FontSize="Large"
+ Text="TITLE"
+ HorizontalOptions="Start"
+ VerticalOptions="Start" />
+ <Image
+ Margin="0,0,8,0"
+ Grid.Row="1"
+ Grid.RowSpan="2"
+ HorizontalOptions="End"
+ Aspect="AspectFit"
+ Source="xamarinlogo" />
+ </Grid>
+ </Frame>
+ </DataTemplate>
+ </CarouselView.ItemTemplate>
+ </CarouselView>
+
+ </Grid>
+</ContentPage>
\ No newline at end of file
--- /dev/null
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+using Xamarin.Forms;
+using Xamarin.Forms.CustomAttributes;
+using Xamarin.Forms.Internals;
+using Xamarin.Forms.Xaml;
+
+namespace Xamarin.Forms.Controls.Issues
+{
+#if APP
+ [Preserve(AllMembers = true)]
+ [Issue(IssueTracker.Github, 7035, "[Bug][iOS] CarouselView last element is clipped",
+ PlatformAffected.iOS)]
+ [XamlCompilation(XamlCompilationOptions.Compile)]
+ public partial class Issue7035 : ContentPage
+ {
+ List<AdItem> announcements = new List<AdItem>();
+
+ public Issue7035()
+ {
+ InitializeComponent();
+ }
+
+ protected override void OnAppearing()
+ {
+ base.OnAppearing();
+ for (int i = 0; i < 20; i++)
+ {
+ announcements.Add(new AdItem("no_artwork", "Card Title", "SUBHEAD"));
+ }
+ CV.ItemsSource = announcements;
+ CV2.ItemsSource = announcements;
+ }
+
+ }
+
+ public class AdItem
+ {
+ public string ImgUrl { get; set; }
+ public string Title { get; set; }
+ public string SubTitle { get; set; }
+ public AdItem()
+ {
+
+ }
+ public AdItem(string img, string ttl, string sttl)
+ {
+ ImgUrl = img;
+ Title = ttl;
+ SubTitle = sttl;
+ }
+ }
+#endif
+}
\ No newline at end of file
<Compile Include="$(MSBuildThisFileDirectory)Issue6894.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Issue6929.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Controls\ApiLabel.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)Issue7035.xaml.cs">
+ <DependentUpon>Issue7035.xaml</DependentUpon>
+ <SubType>Code</SubType>
+ </Compile>
<Compile Include="$(MSBuildThisFileDirectory)Issue7525.xaml.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Issue7582.cs" />
</ItemGroup>
<EmbeddedResource Include="$(MSBuildThisFileDirectory)Issue4356.xaml">
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
</EmbeddedResource>
+ <EmbeddedResource Include="$(MSBuildThisFileDirectory)Issue7035.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
+ </EmbeddedResource>
<EmbeddedResource Include="$(MSBuildThisFileDirectory)Issue7525.xaml">
<Generator>UpdateDesignTimeXaml</Generator>
</EmbeddedResource>
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
</EmbeddedResource>
</ItemGroup>
+ <ItemGroup>
+ <EmbeddedResource Include="$(MSBuildThisFileDirectory)Github3847.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
+ </EmbeddedResource>
+ </ItemGroup>
<ItemGroup>
<EmbeddedResource Include="$(MSBuildThisFileDirectory)Issue4684.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
</EmbeddedResource>
</ItemGroup>
- <ItemGroup>
- <EmbeddedResource Include="$(MSBuildThisFileDirectory)Github3847.xaml">
- <SubType>Designer</SubType>
- <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
- </EmbeddedResource>
- </ItemGroup>
<ItemGroup>
<Compile Update="$(MSBuildThisFileDirectory)Issue6130.xaml.cs">
<DependentUpon>Issue6130.xaml</DependentUpon>
return false;
}
+ if (CollectionView.NumberOfSections() == 0)
+ return false;
+
var itemCount = CollectionView.NumberOfItemsInSection(section);
if (itemCount < _itemsLayout.Span)
public virtual UIEdgeInsets GetInsetForSection(UICollectionView collectionView, UICollectionViewLayout layout,
nint section)
{
+ if (_itemsLayout is GridItemsLayout gridItemsLayout)
+ {
+ if (ScrollDirection == UICollectionViewScrollDirection.Horizontal)
+ {
+ return new UIEdgeInsets(0, 0, 0, (nfloat)gridItemsLayout.HorizontalItemSpacing * collectionView.NumberOfItemsInSection(section));
+ }
+
+ return new UIEdgeInsets(0,0, (nfloat)gridItemsLayout.VerticalItemSpacing * collectionView.NumberOfItemsInSection(section), 0);
+ }
+
return UIEdgeInsets.Zero;
}