UICollectionView _createPreparedCellForItemAtIndexPath:withLayoutAttributes:applyAttributes:和viewWillAppear:order

时间:2017-10-18 14:00:07

标签: objective-c ipad ios11

对于任何可能有想法的人来说,这是一个简单的问题:

我最近遇到了一个关于我的应用程序的错误,这引发了一个小问题。

该错误是由一段代码试图访问尚未设置的数组引起的。 这里有趣的商店是相同的代码在iPad Air上运行得非常好,并且在iPad Pro上崩溃。

实际上,我试图在我的控制器的collectionView:cellForItemAtIndexPath:方法中访问该数组,并且该数组是在同一控制器的viewWillAppear:方法中初始化的。

在我试过的任何设备上,在iPad Pro上出现,collectionView:cellForItemAtIndexPath:方法始终在viewWillAppear:之后调用,但在iPad Pro上则是另一种方式。

我轻松解决了这个问题,但我仍然想知道为什么iPad Pro的周期与另一个不同。任何人都有这方面的线索?

(我在Objective-C,iOS 11.0上)

1 个答案:

答案 0 :(得分:0)

为以下条件

更改collectionView:cellForItemAtIndexPath方法

if (array has data || data is downloading) { show activity indicator } else { show data }

加载数据时重新加载集合视图