tableView代理方法執行順序


tableView代理方法執行順序,隨着iOS系統版本的不斷升級,執行順序也有所變化

1.iOS7.1中先依次調一遍heightForRow方法再依次調一遍cellForRow方法,在調cellForRow方法的時候並不會再調一次對應的heightForRow方法。

2.iOS8中先依次調heightForRow(如果行數超過屏幕依次調用兩次,如果行數很少,沒有超過屏幕,只依次調用一次),之后每調一次cellForRow的時候又調一次對應的heightForRow方法。

3.iOS9iOS10中,heightForRow方法會先調用三次,然后每調用一次cellForRow的時候再調用一次對應的heightForRow

4.因為iOS11中tableView的estimatedRowHeight默認值由原來的0變為UITableViewAutomaticDimension(打印出來為-1),所以每一次先調用cellForRow又調一次對應的heightForRow方法。

如果把estimatedRowHeight設為0,則還是會先遍歷一次每個cell的tableView:heightForRowAtIndexPath:獲取總的高度值 然后每調用一次cellForRow的時候再調用一次對應的heightForRow。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM