簡體   English   中英

快速重新加載UITableView數據(iOS)

[英]Quick reload of UITableView data (iOS)

我正在使用UITableView顯示自定義內容(通過將UITableViewCell子類化),並且我有兩種類型的內容。

通常顯示的類型1由6-7行和1個部分組成,這很快就加載完全沒有問題。 默認情況下顯示此數據集。

現在視圖上有一個按鈕,單擊該按鈕將打開一個標志並稱為[tableview reloadData],然后提供數據的方法將切換並開始返回第二組數據視圖。...大約有20,000多個現在,這些行...可能有1,000,000,000(但不久之后不會發生...)。

對於第二種類型,我要做的就是存儲一個整數(它們不是連續的-有間隔,所以我必須這樣做),然后在調用cellForRowAtIndexPath的時候,我返回一個單元格並創建一個將加載的線程異步將數據導入該單元。 效果很好...但是問題是,即使表加載的組件不超過三個(它們的高度很大),單擊該按鈕仍需要很長時間才能切換內容。

是什么原因導致這么長的數據重新加載時間?...

謝謝。

我將假設您正確地異步加載了數據,並且您沒有嘗試將20,000+個對象重新加載到內存中,您可能需要仔細檢查。 否則,如果要實現tableView:heightForRowAtIndexPath:來設置行的高度,則可能是您遇到的問題。 需要為每一行調用此委托方法,以便它可以設置滾動視圖內容的大小。 而是使用UITableViewrowHeight屬性。

使用tableView:heightForRowAtIndexPath:而不是rowHeight屬性會對性能產生影響。 每次顯示表視圖時,它都會在委托上為其表的每一行調用tableView:heightForRowAtIndexPath:,這可能導致表視圖具有大量行(大約1000或更多)而導致嚴重的性能問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM