2014-03-24 88 views
0

我有一個UITableViewCell,它只包含一個顯示CSS文本的UIWebView。這是我在表格中顯示的唯一類型的單元格。我設置了一個重用標識符來重用基於其索引路徑的單元格(例如,第一條消息爲「0_0」,第二條爲「0_1」)。然而,總是第一個單元非常緩慢地加載。在第一個單元之後,其餘的單元立即顯示。第一個UITableViewCell緩慢加載

我已經嘗試在viewDidLoad中手動創建具有重用標識符@「0_0」的單元。這似乎不會影響第一個單元的顯示速度。有什麼想法嗎?

+0

WebView是問題所在。加載內容總是需要時間。您的選項是「在App啓動時以bg預載它」,或者加載所有其他單元,然後允許第一個單元更新。或者擺脫webview並嘗試找到另一種解決方案,以滿足您的需求。 –

回答

0

在我看來,除了UIWebView中的內容,您的所有單元格都是相同的。如果是這種情況,那麼你應該使用相同的單元重用標識符來加快加載速度。

我相信你當前創建和分配標識符的方式並不能幫助應用程序的性能。 「相同」的單元格應該具有相同的標識符,以便iOS可以重用單元格並更改內容。

請提供一個如何實例化您的單元格的代碼示例,這將有所幫助!

乾杯!

0

如果您實際上在重複使用單元格,我無法說出(沒有正確的代碼,也不知道您是否正在使用故事板)。但是,你應該記住tableview是如何工作的:只有一堆單元格(可見單元格加上1或2)才真正分配到內存中。當一個單元格離開屏幕時,它會被移動並重新定位到表格的另一側(例如:如果您正在向上滾動內容,它將移動到底部並準備滾動),並且只有內容被重新加載。這隻有在使用正確的重用標識符時纔有效,否則表格視圖將繼續生成新的單元格,直到內存用完。 在你的情況,我期望一個緩慢的第一個單元格加載(因爲它被分配),隨後在滾動期間重新使用時幾乎立即重新加載內容。但是,正如我所說,如果沒有關於項目配置和無代碼的更多詳細信息,我無法確定。

+0

我沒有添加代碼,因爲問題的目的是非常普遍。你期望的第一個細胞是緩慢的 - 有什麼方法可以使它不會變慢?我試圖在viewDidLoad中「預加載」它,但這似乎不起作用。 – Sean

+0

好的,但您至少應該告訴我們您是否正在使用故事板/界面構建器,或者您正在編碼。正如其他人告訴你的,如果您擁有單一類型的單元格,則應該使用單個重用標識符。我們在談論多少個網頁瀏覽?如果沒有正確的重用標識符,您同時加載它們,這可能會影響整個緩慢加載。 –