为 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,因为你只需要一个全屏项目。

参考

https://developer.apple.com/forums/thread/52578