cellForItemAtIndexPath在块中获取indexPath的错误值

时间:2017-08-04 15:32:47

标签: ios uicollectionview uicollectionviewcell uicollectionviewdelegate

我在自定义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];获得了正确的值。

我不知道为什么他们不同?

1 个答案:

答案 0 :(得分:2)

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

请致电方法,然后检查。