YYKit-流畅的tableView,解析布局及数据处理
2017-10-25 本文已影响61人
疯一样的男子sz
首先我们看下微博Demo的效果图
YYKitDemo--微博 效果图 文件结构上图是微博Demo的文件目录结构,主要的文件是VC,layout布局文件,cell,model。其他的文件是项目中需要用到的工具,以后再详细说明。
上图 vc的结构上图可以看到,vc的结构简单,页面就是一个tableview,其他的就是scrollView、tableView、和设置的cell的代理方法。
首先看一下VC有个YYFPSLabel,这个Label是可以看到tableView滑动时候的帧数,以后的文章会详细讲到。
数据处理上图是vc里面的数据处理及页面刷新,这种处理方式是比较常见和常用的,耗时的方法加入到异步线程里面,Demo使用了WBStatusLayout这样的布局文件,这个类的作用就是计算每个数据在cell中的布局,比如图片的大小,文字的宽高,每个model、layout、cell是一一对应的。
layout中的部分代码layout计算了各个控件的大小,包括cell的高度,我们知道tableView会频繁的调用heightForRowAtIndexPath方法计算cell的高度,Demo用异步线程计算好布局,再在主线程刷新UI,这样调用高度的时候直接取出来就行了,不需要再计算高度,保证tableView的流畅性。
cell的布局及高度计算 cell的代码cell中的代码主要是各个UI组成的,包括一些交互和Delegete方法,根据塞进来的数据对UI进行布局。
model最后,model里面的逻辑主要是model属性的映射。