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()
,因此您在删除后没有获得正确的索引路径。
请先调用方法再检查
我在自定义 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()
,因此您在删除后没有获得正确的索引路径。
请先调用方法再检查