UICollectionView 小坑:cellForItemAtIndexPath 返回空

動畫需要獲取當前的 Cell ,下面的調用在 viewDidLoad 中,有時候返回 nil,有時候成功。

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

簡單的解決方法,是在調用之前添加

[self.collectionView layoutIfNeeded];

原因是,根據蘋果開發者文檔:
UICollectionView如果 cell 不是 visible 的 或者 indexPath 超過有效范圍,就返回 nil。?

在 iOS 10 上 還有一種解法:

[self.collectionVew setPrefetching?Enabled: NO];

但這種就犧牲了性能。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容