iOS 如何解决UITableView刷新卡顿现象
2015-10-29 15:14
465 查看
虽然说SDWebImage提供了一个方法,异步加载图片到UIImageView上
但是,有些时候。需要的图片并不是需要铺满UIImageView
于是就抛弃了,后来想想还是挺二逼的。我可以在下面在铺一层边框UIImageView也能达到这个效果
于是乎,故作高大上,非要自己写。
后来看别人的方法,找到点感觉,还是写出来了,不过还是建立在网络良好的情况下
解决办法
主要要做到一下几个方面:
1.除了UI部分,所有的加载操作都在后台完成。这一点可以通过dispatch或者performSelectorInBackground或者NSOperationQueue来实现。见:在iOS开发中利用GCD进行多线程编程iOS开发中使用NSOperationQueue进行多线程操作
2.避免后台加载完成多个资源之后集中到达占用UI线程的处理时间太长。这一点可以通过NSOperationQueue来实现,将资源到UI的展现过程放在队列中逐个执行,且在每个操作完成之后进行强制等待,可以用usleep(int microSeconds)来解决。
3.重用cell。创建cell一般是很慢的,一定要重用,甚至为了performance,可以在view创建之初就创建足够多的cell在重用队列中。
但是,有些时候。需要的图片并不是需要铺满UIImageView
于是就抛弃了,后来想想还是挺二逼的。我可以在下面在铺一层边框UIImageView也能达到这个效果
于是乎,故作高大上,非要自己写。
后来看别人的方法,找到点感觉,还是写出来了,不过还是建立在网络良好的情况下
解决办法
主要要做到一下几个方面:
1.除了UI部分,所有的加载操作都在后台完成。这一点可以通过dispatch或者performSelectorInBackground或者NSOperationQueue来实现。见:在iOS开发中利用GCD进行多线程编程iOS开发中使用NSOperationQueue进行多线程操作
2.避免后台加载完成多个资源之后集中到达占用UI线程的处理时间太长。这一点可以通过NSOperationQueue来实现,将资源到UI的展现过程放在队列中逐个执行,且在每个操作完成之后进行强制等待,可以用usleep(int microSeconds)来解决。
3.重用cell。创建cell一般是很慢的,一定要重用,甚至为了performance,可以在view创建之初就创建足够多的cell在重用队列中。
相关文章推荐
- iOS_ UIScrollview_无限循环
- 日常问题记录--JSP页面中通过<s:property value="#parameters.userName[0]>获取URL参数中文时为乱码的解决办法
- warning: push.default is unset; its implicit value has changed in Git 2.0 from 'matching' to 'simple
- QueryRunner的使用
- 随机生成36位的UUID
- 【Mockplus教程】添加
- 【Mockplus教程】删除
- 【Mockplus教程】复制/粘贴/克隆
- easyui datebox 清空值或添加自定义按钮
- 使用Auto-Scaling服务在Bluemix平台构建可自动伸缩的应用
- 如何布局包含Image和Title的UIButton
- How to use For loop in CruiseControl.net
- 转载: buildroot编译环境
- Could not build module ‘libxmlSimu'
- uIP编译时配置选项
- iOS UICollectionViewController基本使用方法和简单的相册实现
- 使用ValueAnimator自定义动态XY图表View
- LeetCode N-Queens II
- 基于物理着色(三)- Disney和UE4的实现
- pv,svogi,vxgi,各自的优缺点在哪,ue4还有可能把svogi加进去吗