UICollectionView 小坑:cellForItemAtIndexPath 返回空

动画需要获取当前的 Cell ,下面的调用在 viewDidLoad 中,有时候返回 nil,有时候成功。

UICollectionView *cell = (UICollectionView*)[self.collectionView cellForItemAtIndexPath:indexPath];

简单的解决方法,是在调用之前添加

[self.collectionView layoutIfNeeded];

原因是,根据苹果开发者文档:

UICollectionView如果 cell 不是 visible 的 或者 indexPath 超过有效范围,就返回 nil。

在 iOS 10 上 还有一种解法:

[self.collectionVew setPrefetchingEnabled: NO];

但这种就牺牲了性能。

转自:StevenC

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容