簡體   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