2016-03-10 73 views
3

我有一些NSNotifications正在進行,我想根據與它們關聯的標籤更新我的單元格。可以通過標記獲取UICollectionViewCell嗎?

這可能嗎?

要闡述我有一個UILabel,在我的UITableViewCell一個UIProgressView,我將要更新,如果通知對象包含一個匹配的標籤。

我在後臺同步數據和每一個我處理的數據塊時我送了一個NSNotification。

我想UICollectionView細胞,以反映最新的狀態。

要做到這一點,我想通過標籤來獲取的UITableViewCell,然後用新的數據更新的UILabel和UIProgressView。

+0

你能詳細說明一下嗎?你有任何代碼方便嗎? – MrHaze

+0

使用'tag'可能不可取。包含模型可以用來識別受影響的單元格的標識符可能會更謹慎,然後讓觀察者將其轉換爲「NSIndexPath」並查看該單元格當前是否可見。但是,如果沒有關於您的模型的更多信息,則很難再向您提供建議。 – Rob

回答

4
  1. 不要被標籤獲得細胞,通過indexPath
  2. 讓他們不要indexPath
  3. 獲得細胞沒有得到他們

(1)你可以得到的意見通過標記,但每次繪製時都需要更新視圖標記以匹配其索引路徑。所以(2)索引路徑一樣好。但(3)他們是沒有好或者,因爲直接調整細胞是不是我們如何做的MVC-土地

這裏的正確的計劃是更新你的模型(MVC而言,集合視圖數據源陣列更具體)以反映世界的變化,然後告訴您的收藏認爲,這是過時的(reloadData是大鐵錘,reloadItemsAtIndexPaths:是手術刀)。

這意味着你的模型必須包含的數據反映,可以用來作爲一個進度條參數的下載進度的狀態(如浮動),並且您的cellForItem ......方法必須檢查此值,並修改單元格的進步視圖。

+0

他不知道要重新加載哪個索引路徑。 – MrHaze

+0

@MHHaze - 這從OP不清楚。 OP當然可以也應該能夠將下載過程映射到相應的數據源對象。這也是標籤和indexPaths的先決條件。 – danh

+0

當然,我並不反對,但是如果你所有的a都是對單元格標籤的引用,那麼你不能僅僅根據它來獲取索引路徑。 – MrHaze

1

你不能這樣做,因爲細胞會重用每次時間。如果你包的標籤,這不僅僅是重裝cells.If要做到這一點,你應該更新你的模型,然後重新加載更新的細胞不容易。

相關問題