Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 我可以自定义UICollectionView的重用吗?_Ios_Swift_Uicollectionview_Carousel - Fatal编程技术网

Ios 我可以自定义UICollectionView的重用吗?

Ios 我可以自定义UICollectionView的重用吗?,ios,swift,uicollectionview,carousel,Ios,Swift,Uicollectionview,Carousel,我将使用UICollectionView创建旋转木马。 我希望UICollectionView边界之外的单元格可见 所以我添加了这个代码,因为我认为这是一个简单的问题 collectionView.isPagingEnabled = true collectionView.clipsToBounds = false 但是,当然,一些边界之外的单元被重用所隐藏 是否仍然可以在不重用的情况下使用UICollectionView,或者调整重用范围,等等 提前感谢。是的,您实际上可以使用UIColle

我将使用UICollectionView创建旋转木马。 我希望UICollectionView边界之外的单元格可见

所以我添加了这个代码,因为我认为这是一个简单的问题

collectionView.isPagingEnabled = true
collectionView.clipsToBounds = false
但是,当然,一些边界之外的单元被重用所隐藏

是否仍然可以在不重用的情况下使用UICollectionView,或者调整重用范围,等等


提前感谢。

是的,您实际上可以使用UICollectionView而无需重新使用

在collectionview的数据源函数中:

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell 
而不是使用

let cell = collectionView.dequeueReusableCellWithReuseIdentifier("CollectionViewCell", forIndexPath: indexPath) as! CollectionViewCell
返回单元格时,您可以创建自己的单元格,而无需调用collectionView的出列函数并返回新创建的单元格

缺点是,每当collectionview需要一个新的单元格时,它都会创建一个新的单元格,而不会重用已有的单元格,导致占用内存的单元格超时增加


要解决这个问题,您可以安排一个数组来跟踪要在哪个索引上使用哪个单元格,并从该数组中提取单元格(如果可用),或者在不可用时创建一个单元格并将其附加到数组中

为什么不将集合视图加宽?你不剪辑想要实现什么?@matt因为我想使用UICollectionView中内置的分页功能来实现pure。如果没有隐藏单元格的问题,那么它可以完美而简单地工作。如果没有简单的方法,我必须扩大收集范围。这是通常的解决方案。事实上,通常的解决方案是使集合视图比屏幕更宽。这给了你一个很好的页面之间的差距。苹果公司建议这样做。或者,如果你想隐藏什么东西,只需在它前面放一个视图,或者从superview中剪辑。