2015-09-29 44 views
0

的表視圖DetailTableViewController,我使用故事板的原型單元格。但是在某些情況下,原型單元格並不合適,因此我爲筆尖定義了一個帶有筆尖和自定義單元類的自定義單元格。然後我註冊自定義筆尖細胞在DetailTableViewController的方法viewDidLoad()與一個特殊的單元重用標識符。然後在tableView(_:cellForRowAtIndexPath :),我出隊自定義筆尖單元其對應的情況。在某些情況下,我將原型單元出列以供使用。爲什麼原型單元格會影響由筆尖定義的自定義單元格的外觀?

但我發現如果這兩種細胞共存在表格視圖中,原型細胞會影響自定義筆尖細胞的外觀。例如,當我改變自定義筆尖單元的背景顏色時,它會顯示原型的背景顏色。我必須點擊自定義筆尖單元來顯示它的真實背景顏色。

如果我刪除原型單元格爲空,並且只使用自定義筆尖單元格,那麼一切工作正常。

原型單元格是否有特殊之處?據我所知(from this answer),原型單元只不過是故事板中定義的自定義筆尖單元。那麼爲什麼?

+0

您可以在故事板中定義多個原型單元,每個原型單元具有不同的佈局,自定義類和重用標識符。然後,您只需向'dequeueReusableCellWithIdentifier:' – Paulw11

+0

提供適當的重用標識符非常感謝,您的方式更好。 – rrrain

回答

0

最後,我發現它不是影響定製單元格的原型單元格。相反,它是原型單元實例數量多於影響定製單元實例所需的數量。當表格視圖請求一個單元格時,我首先創建了一個原型單元格實例。然後我檢查它是否適合indexPath。如果沒有,我然後創建一個自定義的單元格實例並返回它。

這意味着一些原型單元實例被創建,但未被使用。細胞實例是昂貴的,我認爲蘋果使用這個未使用的細胞的一些性能增強(我不知道這一點)。因此,它們會影響自定義單元實例。糾正這個錯誤後,一切工作正常。如果有人知道詳細的原因,請在這裏發帖。非常感謝。

希望這個答案是有幫助的。

相關問題