gpt4 book ai didi

ios - UICollectionView numberOfItemsInSection 被调用两次

转载 作者:搜寻专家 更新时间:2023-11-01 05:57:34 27 4
gpt4 key购买 nike

我的 viewController 中有一个启用了分页的 scrollView,我想要 6 个 Collection View ,这些 collectionView 是 ScrollView 的 subview 。 collectionViews 中有不同数量的项目。

viewDidLoad 看起来像这样-

override func viewDidLoad() {
super.viewDidLoad()
//Set the frame for scroll view
//Programatically created 6 collection views and added them to scrollView
//Set the content size for scroll view

}

每个 collectionView 都与 viewDidLoad 中的一个标签相关联。

collectionView1.tag = 0
collectionView2.tag = 1 and so on..

And the collectionViews were added to the scroll view serially starting from collectionView with tag 0

let noOfItemsArray = [2, 4, 6, 3 ,8, 7]
// 1st collection view has 2 items, 2nd has 4 and so on..

func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return noOfItemsArray[collectionView.tag]
}

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath)
cell.backgroundColor = UIColor.redColor()
return cell
}

应用程序崩溃。所以为了调试,我将我的 numberOfItemsInSection 修改为 -

func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
print(collectionView.tag)
return 10
}

我发现首先为标记为 5 的 collectionView 调用了 numberOfItemsInSection。为这个 collectionView 调用了一次。但是对于其余的 collectionViews,numberOfItemsInSection 被调用了两次 - 在第一次调用 collectionView.tag = 5 时,然后在第二次调用中,collectionView.tag = 4(3,2,1 等等......)

 Output was - 
5 //For collectionView with tag 5, called only once
5 //For collectionView with tag 4, the first call to numberOfItemsInSection
4 //For collectionView with tag 4, the second call to numberOfItemsInSection, and so on..
5
3
5
2
5
1
5
0

现在,由于 numberOfItemsInSection 始终返回 10,我可以在每个 Collectionview 中看到 10 个项目。但早些时候,当我返回 noOfItemsArray[collectionView.tag] 时,由于 2 个调用返回不同的值,我的应用程序崩溃了。

为什么会发生这种情况,最好的解决方案是什么?

感谢您的宝贵时间。

最佳答案

我刚刚遇到了同样的问题。最后,我发现问题的原因是我对 collectionViews 使用了相同的布局。在为每个 collectionView 创建布局后,numberOfItemsInSection 将只为每个 collectionView 调用一次。希望对您有所帮助。

关于ios - UICollectionView numberOfItemsInSection 被调用两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35586512/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com