2016-10-22 107 views
2

我正在嘗試更新集合視圖單元格中的單個標籤。我知道如何更新整個集合視圖以及如何更新單個單元格,但我只想更新一個標籤,因爲如果整個單元格更新它將會更改其他我不想更改的東西。在文檔中,我發現了一個名爲UICollectionViewUpdateItem的東西,但無法弄清楚如何使用它。這是否能夠更新單個標籤?如果沒有,是否有另一種方式?可以使用UICollectionViewUpdateItem更新單個標籤嗎?

回答

2

如果您知道要更新的單元格的索引路徑,則可以使用cellForItem(at: IndexPath)獲取單元格。從那裏你可以編輯你的單元格的標籤。

但是,我建議您不要更改您的基礎數據,以便它處於不適合在UI中呈現的狀態。收集視圖可以決定在不可預知的時候創建單元格。

UICollectionViewUpdateItem用於表示例如,從一個地方移動單元格,並在它移動到,或在某個位置上的細胞被刪除,更新等文檔狀態:

不要直接創建該類的實例。

所以它意味着你應該只能間接創建它,例如通過reloadItems(at: [IndexPath])。它會重新加載整個單元格,不應該用來更新它的單個細節。

+0

這是很好的信息,但如何更新標籤而不更新整個單元?例如,如果單元格中出現動畫,並且我想更新標籤,則我不想取消動畫。 –

+0

我會計算它的索引路徑,獲取單元格,訪問它的標籤(通過一個屬性,如果你有一個自定義單元類,或使用'viewWithTag')並賦值給它的'text'。 – Andreas

+0

是的,這就是我想要做的,大聲笑這就是我不明白該怎麼做。好吧,在提交此評論之前,我想我明白了你的意思。這是我正在尋找的答案。我沒有意識到你可以從cellforitem()訪問label.text我認爲它不會更新它,除非你重新加載單元格或表格 –

相關問題