1.

动画需要获取当前的 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];

但这种就牺牲了性能。

https://yiweifen.com/html/news/WaiYu/13536.html

 

2.点击cell reload oldIndex

 

    [collectionView reloadItemsAtIndexPaths:@[oldIndexPath,indexPath]];

 

如果oldIndex和indexPath,会有显示bug

if (oldIndex != indexPath.row) {

  

[collectionView reloadItemsAtIndexPaths:@[oldIndexPath,indexPath]];

 

}

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-10
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-05-17
  • 2021-08-03
  • 2021-11-04
  • 2021-11-26
  • 2022-01-07
相关资源
相似解决方案