1.形成tableView卡顿的缘由有哪些?
-
1.最经常使用的就是cell的重用, 注册重用标识符
若是不重用cell时,每当一个cell显示到屏幕上时,就会从新建立一个新的cellhtml
若是有不少数据的时候,就会堆积不少cell。ios
若是重用cell,为cell建立一个ID,每当须要显示cell 的时候,都会先去缓冲池中寻找可循环利用的cell,若是没有再从新建立cellc++
-
2.避免cell的从新布局
cell的布局填充等操做 比较耗时,通常建立时就布局好面试
如能够将cell单独放到一个自定义类,初始化时就布局好swift
-
3.提早计算并缓存cell的属性及内容
当咱们建立cell的数据源方法时,编译器并非先建立cell 再定cell的高度xcode
而是先根据内容一次肯定每个cell的高度,高度肯定后,再建立要显示的cell,滚动时,每当cell进入凭虚都会计算高度,提早估算高度告诉编译器,编译器知道高度后,紧接着就会建立cell,这时再调用高度的具体计算方法,这样能够方式浪费时间去计算显示之外的cell缓存
-
4.减小cell中控件的数量
尽可能使cell得布局大体相同,不一样风格的cell可使用不用的重用标识符,初始化时添加控件,网络
不适用的能够先隐藏数据结构
-
5.不要使用ClearColor,无背景色,透明度也不要设置为0
渲染耗时比较长多线程
-
6.使用局部更新
<