所以我有一個主要的對象,有許多圖像與它關聯。圖像也是一個對象。UICollectionView選擇和取消選擇問題
說你有一個集合視圖控制器,並在控制器,你有
cellForItemAtIndexPath
以及基於主要對象,如果有與它相關我想當前的圖像來設置選擇爲真。但是我希望用戶能夠隨時「取消」當前單元格,以消除它與主要對象的關聯。
我發現如果你設置「選擇爲真」 - 如果cellForItemAtIndexPath
中的主對象和圖像之間存在關係,取消選擇不再是一個選項。
在
didDeselectItemAtIndexPath
和
didSelectItemAtIndexPath
我有一個記錄測試,看看他們是否被調用。如果一個單元格被設置爲選中 - 下一個被調用,但如果我從來沒有設置一個單元格在cellForItemAtIndexPath
中被選中,我可以選擇和取消選擇所有我想要的。
這是集合視圖應該工作的預期方式嗎?我閱讀了文檔,似乎沒有談論這是如此。我將文檔解釋爲表示它以表格視圖單元格的方式工作。有幾個明顯的變化
這也顯示了控制器設置正確,並使用相應的委託方法.... hmmmm
有沒有人使用過集合視圖,在cellForItemAtIndexPath中將選擇設置爲YES並且能夠取消選擇該單元格?我已經建立了兩個測試項目,兩者的工作原理都是一樣的。只要在cellForItemAtIndexPath中將selected設置爲true,就不會再次調用取消選擇。 – bworby 2013-03-12 04:46:44
不,我認爲你不能這樣做。如果我在cellLForItemAtIndexPath中設置了一個單元格,則該項目的行爲與集合視圖(即所選背景)的初始顯示中所選擇的相同。然而,如果我查看[collectionView indexPathsForSelectedItems]的值,我會得到零 - 這表明我不會有通過常規手段取消選擇它的方式。 您可能可以設置cell.selected == NO的值,因爲我沒有嘗試過。但是,如果你無法獲得所選項目的索引路徑,那肯定會使集合視圖更難以使用。 – RegularExpression 2013-03-12 05:03:26
這看起來不奇怪嗎?我可能會考慮錯誤,但我可以肯定地看到,允許某些單元格按照選定的方式啓動並能夠被取消選擇的用途很多。 – bworby 2013-03-13 21:55:53