我有一个包含几个单元格的UICollectionView。
我通过单击其上的按钮删除了第一个单元格,无论我选择[UICollectionView reloadData] or [UICollectionView deleteItemsAtIndexPaths:]
,它都能正常工作。
现在下面的单元格会向前移动,所以第一个单元格现在将是删除之前的第二个单元格,这很容易理解,对吗?
现在出现了奇怪的部分:
我点击第一个单元格的删除按钮,显示:
<MyCell: 0x7fc5de566590; baseClass = UICollectionViewCell; frame = (220 20; 80 104); alpha = 0; hidden = YES; layer = <CALayer: 0x7fc5de566740>>
我打印出可见细胞:
< __NSArrayM 0x7fc5de655830>(
< MyCell: 0x7fc5de55c060; baseClass = UICollectionViewCell; frame = (20 134; 80 104); layer = < CALayer: 0x7fc5de55c210>>,
< MyCell: 0x7fc5de635290; baseClass = UICollectionViewCell; frame = (120 134; 80 104); layer = < CALayer: 0x7fc5de635440>>
)
见?我点击的单元格实际上是被删除的单元格,除非它不是!它有一个flag hidden = YES
,它还有一个框架和超级视图(是的,superview是集合视图)。
现在这给我带来了问题,因为我打算删除这个人MyCell:0x7fc5de55c060。
那么有什么线索吗?谢谢!
答案 0 :(得分:0)
问题解决了。 这是因为我在MyCell中覆盖了hittest。 我没想到删除的单元格仍然是集合视图的子视图。