UITableview性能优化总结

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

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绘制










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值