我有一個多節UITableView與自定義標題視圖,需要知道他們的部分索引。我當前在viewForHeaderInSection中創建自定義視圖時,在UIView的標記字段中記錄節號。但是,當行被刪除時,UITableView不會爲屏幕上可見的標題視圖重新加載節標題視圖,因此它們的標記字段不同步。通過重新創建標題視圖,在表上調用reloadData可重新同步標記字段,但調用reloadData會干擾行刪除動畫。設置一個定時器在「短」時間段後調用reloadData似乎有些冒險,如果用戶在定時器觸發之前最終與失步頭交互(我想我可以添加一個狀態變量來防止這種情況發生,呃)。如何在刪除部分時更新UITableView中的自定義標題視圖?
我可以跟蹤容器中創建的所有標題視圖,並在行被刪除時調整它們的標記(再次)。但是,我如何避免泄露視圖?我如何知道UITableView何時發佈視圖,以便我可以刪除對它們的引用以便它們可以被釋放?
這似乎是更多的工作比它應該是....我錯過了什麼嗎?我注意到其他人有非常相似的問題,從來沒有看到解決它的權威方法。
正如我在問題中提到的那樣,我可以跟蹤標題視圖,但我問:我怎樣才能避免泄漏它們?何時使用自定義頁眉/頁腳視圖「完成」表格視圖?如果我保留對標題視圖的引用(例如,在字典中),以便我可以更新它們的標籤,我怎麼知道何時可以發佈它們?附:使用帶狀態變量的延遲重新加載來防止視圖的不同步使用非常簡單,並且可以保留段刪除動畫。但我仍然想知道如何做到這一點「正確」,並知道我何時可以從我的字典中發佈意見。 – Bogatyr 2010-10-16 11:45:37
當部分中的所有行都消失後,頁眉和頁腳也應該消失。問題是你必須對多個部分進行明智的選擇,哪些部分是謹慎的,並且使用某種檢查方式,以便在正確的索引中刪除正確的視圖。 – JoePasq 2010-10-16 15:48:07
在某個部分滾動屏幕時,UITableView將釋放該部分的自定義視圖。我想知道這是什麼時候發生的。那可能嗎?否則,我必須永遠堅持所有的自定義標題視圖,直到表被銷燬。這正是我想要避免的。 – Bogatyr 2010-10-27 10:39:49