作品分享
问答交流
发现
任务
客服工单
一、善用重用标识 二、设置预估行高,预先缓存动态行高 三、减少SubViews层级、异步绘制、制止离屏渲染、使用Hidden隐蔽图层 四、分屏加载数据,预先异步哀求数据 五、滑动TableView时,按需加载内容 六、cell类中应该制止哀求网络加载数据 七、在willDisplayCell:forRowAtIndexPath:署理方法中的绑定命据
这个属于根本知识范畴,就不再过分的讲授了。 只须要相识使用static修饰重用标识名称可以或许保证这个标识只会创建一次,进步性能。接着就是调用dequeueReusableCellWithIdentifier:方法获取缓存池中的Cell。假如没有就调用initWithStyle:ReusIdentifier:方法创建一个新的Cell。留意事先须要调用registerNib/registerClass方法为TableView注册一下标识。
(1) 使用Autolayout举行UI布局约束 (2) 指定TableView的estimatedRowHeight属性的默认值 (3) 指定TableView的rowHeight的属性为UITableViewAutomaticDimension。
当我们自界说某个cell,并在cell上添加大量的体系控件后,在创建该cell对象时体系会调用底层接口举行绘制,大量的添加利用会斲丧很大的资源同时会影响渲染的性能。
办理因图层层级多造成的性能题目,我们可以通过drawRect:方法,调用Core Graphics框架中的API举行异步绘制,进步服从。drawRect:本身是移步的。别的drawRect:中大量的绘制也会造成内存的增长,可以使用CAShapeLayer来取代。
在实现drawRect:方法的时间,他的rect参数就是我们须要绘制的地域,在rect范围之外的地域不要绘制,否则会斲丧相称大的资源。
起首在cell中添加图片应该只管制止使用imageWithNamed:方法,由于该方法会将图片缓存到内存中。而且应该使用imageWithContentsOfFile:方法来更换,该方法在图片使用完后体系会自动开释资源,并不会缓存下来。别的联合SDWebImage框架的使用可以明显进步图片加载的性能。
在cell中应该只管制止动态创建图层。在初始化cell的时间一并将全部的图层预先创建好,通过hidden属性控制子图层的表现或隐蔽,由于单纯的表现利用要比创建快得多。
举报
本版积分规则 回帖后跳转到最后一页
Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )
GMT+8, 2025-8-24 05:26, Processed in 0.155135 second(s), 34 queries.© 2003-2025 cbk Team.