春节假期第五天(正月初二)
今天一如既往的睡懒觉到中午才起床,起床后煮了一个泡面,续交了网费,研究了下Chemelon
的UITableView的实现和调用链,感觉实现的很精妙,核心是在初始化和设置数据源时就全部计算出每组、每行的高度信息,在layer重绘时根据tableview当前的可视bounds进行判断那些cell需要展示,哪些需要放入缓存,实现很精妙,一次性计算,后续每次读取内容,不过看起来重绘的时机点比较多,每次变化都要重绘,但是不重绘又没法准确重用,早期估计系统也可能是这么实现的,但是经过近十年的升级迭代,增加了很多功能,性能也有所优化,还支持了自动布局,而Chemelon还是停留在frame布局的时代,不过整体的思路还是很值得参考。
This post is licensed under CC BY 4.0 by the author.