例如,在tableView中有100行,heightForRowAtIndexPath:
已在第100行顯示之前執行。heightForRowAtIndexPath:在顯示單元格之前執行?
爲什麼?爲了計算tableView的contentSize
?
謝謝!
例如,在tableView中有100行,heightForRowAtIndexPath:
已在第100行顯示之前執行。heightForRowAtIndexPath:在顯示單元格之前執行?
爲什麼?爲了計算tableView的contentSize
?
謝謝!
每次顯示錶視圖時,它調用的tableView:heightForRowAtIndexPath:對委託其各行的
所以,是的,這就是所謂的顯示之前細胞。如果你考慮一下,如果表格反過來,它會創建一個標準高度的單元格,將內容放入它,獲得真實高度,並調整/移動單元格。那不會很好。
這可能會導致性能問題,所以如果你有不同高度的細胞,你應該只使用它:
該方法允許委託具有不同的高度指定行。如果實現此方法,則它返回的值將覆蓋爲給定行的UITableView的rowHeight屬性指定的值。
使用
tableView:heightForRowAtIndexPath:
而不是rowHeight屬性會影響性能。 每次顯示錶格視圖時,都會在代理中爲其每行調用tableView:heightForRowAtIndexPath:
,這可能會導致具有大量行(大約1000或更多)的表視圖出現嚴重的性能問題。
否則,如果所有的細胞都具有相同的高度,使用rowHeight
財產,並沒有實現tableView:heightForRowAtIndexPath:
。
問題不清楚..也許一些相關的代碼會有所幫助。 – Bourne
是的,它將在**單元格顯示之前調用**。您必須將單元格的高度提供給「UITableView」,並且可以使用它來調整「UITableViewCell」的大小。它只需要可見的細胞。不管你的數據庫有多大,如果屏幕上只有5個單元格,它只會被調用5次。 – holex