[英]UICollectionView.reloadData() changes cell order | iOS Swift
[英]UICollectionView.reloadData or UICollectionView.deleteItemsAtIndexPaths makes cell hidden but still clickable
我有一個包含幾個單元格的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
的flag hidden = YES
,也有一個框架和一個超級視圖(是的超級視圖是集合視圖)。
現在這給我帶來了問題,因為我打算刪除此人MyCell:0x7fc5de55c060。
那么有什么線索嗎? 謝謝!
問題解決了。 這是因為我在MyCell中覆蓋了hittest。 我沒想到被刪除的單元格仍然是集合視圖的子視圖。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.