cellForItemAtIndexPath 在块中获取错误的 indexPath 值

cellForItemAtIndexPath get the wrong value of indexPath in block

我在自定义 UICollectionViewCell 中创建了一个按钮,并在按钮块中添加了一个目标,例如:

@interface MYCollectionViewCell : UICollectionViewCell
@property (nonatomic, copy) void (^clickButtonBlock)(BOOL boolValue);
@end

并且我设置块以删除我单击 cellForItemAtIndexPath 中的按钮的单元格,例如:

[self.collectionView performBatchUpdates:^{
    [strongSelf.dataArray removeObjectAtIndex:index];
    [strongSelf.collectionView deleteItemsAtIndexPaths:@[[NSIndexPath indexPathForRow:index inSection:0]]];
    [strongSelf.collectionView insertItemsAtIndexPaths:@[[NSIndexPath indexPathForRow:5 inSection:0]]];
}];

删除第一个单元格后。下一个单元格的 NSIndexPath 错误,块中的函数 [collectionView indexPathForCell:strongCell]; 得到正确的值。

不知道为什么不一样?

您没有在删除后调用 collectionView.reloadData(),因此您在删除后没有获得正确的索引路径。

请先调用方法再检查