为 UICollectionView 一次显示一个单元格
Showing one cell at a time for UICollectionView
我有一个集合视图,我想一次只显示一个单元格,根据我在 SO 上的发现,它 应该 就像将项目大小设置为collectionview 本身,但是当我这样做时,我仍然看到下一个单元格的一小部分。
以下是我设置收藏视图的方式:
cvCarousel.RegisterNibForCell(CarouselItemCollectionViewCell.Nib, CarouselItemCollectionViewCell.Key);
cvCarousel.CollectionViewLayout = new UICollectionViewFlowLayout
{
ItemSize = new CGSize(cvCarousel.Frame.Width, cvCarousel.Frame.Height),
MinimumInteritemSpacing = 0,
MinimumLineSpacing = 0,
ScrollDirection = UICollectionViewScrollDirection.Horizontal
};
我确定这里遗漏了一些简单的东西,但不确定是什么。
我猜你在 viewDidLoad
方法中调用了以下代码。
一切都会有任何框架大小和位置,直到布局完成,但是在 viewDidLoad
方法中还为时过早,我们只能在 viewDidLayoutSubviews
方法中获得正确的框架.
不过,这里你可以直接把cvCarousel.Frame
换成UIScreen.MainScreen.Bounds
,因为你只需要一个全屏项目。
参考
我有一个集合视图,我想一次只显示一个单元格,根据我在 SO 上的发现,它 应该 就像将项目大小设置为collectionview 本身,但是当我这样做时,我仍然看到下一个单元格的一小部分。
以下是我设置收藏视图的方式:
cvCarousel.RegisterNibForCell(CarouselItemCollectionViewCell.Nib, CarouselItemCollectionViewCell.Key);
cvCarousel.CollectionViewLayout = new UICollectionViewFlowLayout
{
ItemSize = new CGSize(cvCarousel.Frame.Width, cvCarousel.Frame.Height),
MinimumInteritemSpacing = 0,
MinimumLineSpacing = 0,
ScrollDirection = UICollectionViewScrollDirection.Horizontal
};
我确定这里遗漏了一些简单的东西,但不确定是什么。
我猜你在 viewDidLoad
方法中调用了以下代码。
一切都会有任何框架大小和位置,直到布局完成,但是在 viewDidLoad
方法中还为时过早,我们只能在 viewDidLayoutSubviews
方法中获得正确的框架.
不过,这里你可以直接把cvCarousel.Frame
换成UIScreen.MainScreen.Bounds
,因为你只需要一个全屏项目。
参考