繁体   English   中英

UICollectionView.reloadData或UICollectionView.deleteItemsAtIndexPaths使单元格隐藏但仍可单击

[英]UICollectionView.reloadData or UICollectionView.deleteItemsAtIndexPaths makes cell hidden but still clickable

我有一个包含几个单元格的UICollectionView。

我通过单击第一个单元格上的按钮删除了该单元格,无论选择[UICollectionView reloadData] or [UICollectionView deleteItemsAtIndexPaths:] ,它都可以正常工作。

现在,以下单元格将向前移动,因此第一个单元格将是删除之前的第二个单元格,易于理解,对吗?

现在出现了奇怪的部分:

  1. 我单击第一个单元格的删除按钮,它显示:

      <MyCell: 0x7fc5de566590; baseClass = UICollectionViewCell; frame = (220 20; 80 104); alpha = 0; hidden = YES; layer = <CALayer: 0x7fc5de566740>> 
  2. 我打印可见的单元格:

     < __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 = YESflag hidden = YES ,也有一个框架和一个超级视图(是的超级视图是集合视图)。

现在这给我带来了问题,因为我打算删除此人MyCell:0x7fc5de55c060。

那么有什么线索吗? 谢谢!

问题解决了。 这是因为我在MyCell中覆盖了hittest。 我没想到被删除的单元格仍然是集合视图的子视图。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM