我有一个collectionview,我想一次只显示一个单元格,根据我在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
方法中获得正确的帧。
但是,在这里您可以直接用UIScreen.MainScreen.Bounds
替换cvCarousel.Frame
,因为您只需要一个全屏项目。
参考
https://developer.apple.com/forums/thread/52578