UITableview性能优化总结

来源:互联网 发布:淘宝代理靠谱吗 编辑:程序博客网 时间:2024/05/19 10:38

在面试的时候遇到过这种问题,总结了一下给大家分享出来,希望大家能提出宝贵意见与批评

1.缓存与数据。

   UITableview 在滑动的时候,如果数据过大或者常用的数据,没有做缓存。每次去请求新的数据在刷新,不仅在滑动流畅上体验不好,性能也会降低。

  解决办法就是做缓存,保存在数据库,每次滑动的时候去数据库查找有没有缓存数据,有的话直接读取,避免每次操作数据请求

2.cell的复用机制。

  在滑动的时候,遵循cell的复用机制,尽可能不要创建多余的cell

3.根据业务需求,cell上面的各种控件,例如图片、标签。。一些控件,尽量根据drawRect方法去进行绘制。iOS中很多控件都是继承与UIView的,UIView使用过多会造成性能消耗过大。影响渲染的性能

- (void)drawRect:(CGRect)rect {

    if (image) {

        [image drawAtPoint:imagePoint];

        self.image =nil;

    } else {

        [placeHolder drawAtPoint:imagePoint];

    }

    

    [text drawInRect:textRect withFont:font lineBreakMode:UILineBreakModeTailTruncation];

}


4.不要影响主线程

  在TableView滑动请求的时候,很大一部分时间是在主线程请求数据加载,然后刷新。这样造成了线程的阻塞

  解决方法是在子线程里面请求数据,然后显示一个HUD等待框,提示用户等待一下。然后数据请求好了以后在回调主线程刷新


5.heightForRowAtIndexPath 高度方法根据业务处理尽可能简化


6.头视图、尾视图加载过多的view时候,尽可能去封装,然后去drawRect绘制










0 0
原创粉丝点击