【问题标题】:iOS screen with multiple collectionView Controllers invokes cellForItemAtIndexPath incorrectly具有多个 collectionView 控制器的 iOS 屏幕错误地调用 cellForItemAtIndexPath
【发布时间】:2014-10-01 16:12:38
【问题描述】:

情况

我的 iOS 手机应用在一个屏幕上有 2 个 UICollectionView。所以我对每个逻辑视图都有不同的子类。

  • AAACollectionViewController:UICollectionViewController、UICollectionViewDataSource、UICollectionViewDelegate
  • AAACollectionView : UICollectionView
  • BBBCollectionViewController:UICollectionViewController、UICollectionViewDataSource、UICollectionViewDelegate
  • BBBCollectionView : UICollectionView

好消息是 AAACollectionViewController.numberOfItemsInSection 在正确的视图上被调用,而 BBBCollectionViewController.numberOfItemsInSection 在正确的视图上被调用。此外,正确调用了正确的 cellForItemAtIndexPath。

AAA 有 2 个细胞,BBB 有 12 个细胞。

问题

但是,BBB.cellForItemAtIndexPath 只被调用了 2 次。

即使我以不同的顺序添加子控制器也是如此:

parent.addChildViewController(AAA)
parent.addChildViewController(BBB)

parent.addChildViewController(BBB)
parent.addChildViewController(AAA)

如果 AAA 有 3 个单元格,则 BBB.cellForItemAtIndexPath 被调用 3 次。

很奇怪。

【问题讨论】:

    标签: ios iphone swift uicollectionview


    【解决方案1】:

    我发现了问题。

    我不小心与两个视图共享了同一个 UICollectionViewFlowLayout 对象。问题的症状很奇怪,在几个方面都很好。

    使用单独的流对象后,用户界面按预期执行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-02
      • 1970-01-01
      • 1970-01-01
      • 2017-10-18
      • 1970-01-01
      相关资源
      最近更新 更多