我正在開發一個iOS應用程序,並且在決定如何解決問題時遇到了一些問題。iOS - 雙列表佈局
我使用兩個UITableViewControllers來顯示相同數據的不同視圖。一個是主列表,另一個只包含標記爲「最愛」的項目。此外,這些項目是可變高度,所以我使用「heightForRowAtIndexPath」來指示每個項目的高度。問題在於速度,當我從一個視圖切換到另一個視圖時,需要更新以顯示其他視圖(標記爲「最喜歡/不喜歡」)所做的更改。
溶液#1:
重新裝入數據中的每個表格視圖變得可見的時間。這樣做效果不好,因爲儘管數據是使用延遲加載顯示的,但在加載ANY數據之前會爲每個項目調用「heightForRowAtIndexPath」,並且速度很慢。在我的iPhone 4上,即使高度值被緩存(瓶頸是應用高度,而不是檢索它),大約300個項目的列表也需要大約4秒鐘才能加載。
溶液#2:
手動操縱表時更改。我沒有試過這個,但它可能是越野車。你的想法?
解決方案#3:
使用的通知類型的系統更新的其他表通知可能當前加載項。我沒有嘗試過,因爲它似乎在頂部,可能根本無法工作。
有誰知道一個簡單的方法來顯示相同數據的兩個視圖?
確實。 - (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)動畫 – 2010-08-15 09:46:46
是的heightForRowAtIndexPath非常慢,但我不認爲應用程序看起來是正確的大小相同的行。我將考慮加速它的唯一選擇是序列化表視圖並在NIB加載時將其反序列化。不知道它是否可能,但它的想法。 – Nippysaurus 2010-08-16 02:35:54
@Nippysaurus:對已故的評論抱歉。我不知道任何其他方法來加速這一點。 (de)序列化tableview是什麼意思? – Nick 2010-08-21 00:30:53