簡體   English   中英

在編程創建的UICollectionView中未調用didDeselectItemAtIndexPath函數

[英]didDeselectItemAtIndexPath function is not being called in programmatically created UICollectionView

我已經以編程方式創建了UICollectionView。 它的單元格還包含以編程方式創建的UILabel,UIView和UIImageView。 包含此集合視圖的視圖也已通過編程方式創建。 我已經將其數據源設置為self。 標簽,視圖和圖像視圖的userInteractionEnabled屬性也已設置為false。 集合視圖的allowMultipleSelection屬性也設置為true。

問題是,每當我觸摸單元格時,就會調用didSelectItemAtIndexPath函數。 但是didDeselectItemAtIndexPath函數從不調用。 我試圖根據需要將cell.selected屬性設置為true / false,但對我的問題沒有幫助。

請幫忙!! 我花了很多時間搜索它,但沒有結果! 感謝您的回復。

好吧,這兩個函數都是根據符合它的對象中的UICollectionViewDelegate調用的。 我強烈建議您檢查以下幾點:

  1. 創建自定義collectionView后,不要忘記為其設置委托屬性。
  2. 在您的委托對象中實現此方法。 -collectionView:didSelectItemAtIndexPath:-collectionView:didDeselectItemAtIndexPath:並放置簡單的NSLog()輸出或斷點
  3. 不要忘記將UICollectionView屬性的allowsSelection設置為YES
  4. 面對結果

重要筆記
1.如果調用UICollectionView方法,例如-selectItemAtIndexPath:animated:scrollPosition:-deselectItemAtIndexPath:animated: 則不會觸發任何此操作, 也不會收到通知。 您還記得,它與UITableViewClass中的一樣
2. UICollectionView屬性allowsMultiplySelection允許您在收集單元狀態之間切換
3.在哪里創建元素都沒有關系。 只需正確設置即可。

希望這對您有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM