iOS 如何解决UITableView刷新卡顿现象

对之前的项目总结一下:

事情是这样的,我需要在定制Cell完成新闻类app的展示

虽然说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在重用队列中。

iOS 如何解决UITableView刷新卡顿现象,布布扣,bubuko.com

时间: 2024-12-17 03:06:06

iOS 如何解决UITableView刷新卡顿现象的相关文章

android问题及其解决-优化listView卡顿和怎样禁用ListView的fling

问题解决-优化listView卡顿和怎样禁用ListView的fling 前戏非常长,转载请保留出处:http://blog.csdn.net/u012123160/article/details/47720257 问题产生 这算是刚到实习公司接触到的第一个任务.公司某一产品中某个界面的listView高速滑动会有卡顿的现象发生,我的任务就是解决它. 产生原因分析 我一開始的想法比較简单.可能是listview的优化没有做到位,比如convertView的复用.viewHolder的使用等等基础

android问题及其解决-优化listView卡顿和如何禁用ListView的fling

问题解决-优化listView卡顿和如何禁用ListView的fling 前戏很长 问题产生 这算是刚到实习公司接触到的第一个任务.公司某一产品中某个界面的listView快速滑动会有卡顿的现象发生,我的任务就是解决它. 产生原因分析 我一开始的想法比较简单,可能是listview的优化没有做到位,例如convertView的复用.viewHolder的使用等等基础的优化措施,然并卵.好长时间后终于找到了问题发生的相关代码...经过在可疑语句上(onTouchEvent方法中的几个case.on

iOS 添加阴影后 屏幕卡顿 抖动

- (void)awakeFromNib { // Initialization code _btnViews.layer.shadowPath =[UIBezierPath bezierPathWithRect:_btnViews.bounds].CGPath; _btnViews.layer.shadowColor = [UIColor grayColor].CGColor;//shadowColor阴影颜色 _btnViews.layer.shadowOffset = CGSizeMake

解决:ScrollView中嵌套ListView,使得listview上下滑动卡顿现象

效果图就是上面的那样!实现方式:上面是一个ViewPager实现的左右无限循环并带有自动轮播的banner.在banner图的下面是一个listview实现上拉加载的功能:但是在我实现的过程中我遇到了一个问题,就是整个页面的展示效果都已经实现,但是banner图连带下面的listview在上下滑动的时候出现卡顿的现象:当然之前也遇到了一个问题,就是我的banner图和listview一起放在了父控件ScrollView中,是的listview不能完全显示:那么就来解决这两个问题. 解决问题一:<

UITableView出现卡顿如何处理

tableView的beginUpdate和endUpdate要比reloadData和reloadRowsAtIndexPaths好,因为beginUpdate和endUpdate会执行一个动画block,图片加载的时候显的很平滑.你自己试一下就知道了. 加载图片的时候要用多线程,要用缓存,也就是需要异步加载 计算cell的高度的时候要尽量的简单,因为tableVIew中cell的高度是一次性加载完的 要用重用机制,一定要用,不然会卡的 用户习惯性快速的滚动,视图和数据内容都会快速的变化,如果

android ListView 刷新卡顿问题

本人刚接触android开发,最近遇到一个关于ListView 刷新item一直卡顿的现象,进度条一直只刷新两次就结束了,灰常不明白,各种百度,各种找资料,什么线程什么的都试了遍,然并卵.一直到看到了一篇资料中提到了wrap_content这个属性,没错就是这个根据内容自适应大小,才发现问题是出在这里. wrap_content根据内容自适应大小,就需要计算item的宽高,如果parent也是这个属性的话,就需要非常长的时间来计算,尤其是在动态更新item的时候,这个过程会不断的进行,所以建议以

解决LaTeX编译卡顿问题

1.问题: 最近在编译latex时,老是在tulmr.fd处编译很久,但是以前不这样啊,那肯定就是我最近做了什么导致这样的了,是什么呢? 2.解决: 后来google下发现了解决办法,原来是我新安装了字体,所以每次重新编译时,它都要重新生成字体缓存,所以解决办法如下: 1. 清空 C:\texlive\2016\texmf-var\fonts\cache 中的文件 (C:\texlive 是我自己机器上 TeXLive 的安装路径):2. 在命令行运行fc-cache -r -v重新生成字体缓存

彻底解决 Intellij IDEA 卡顿 优化笔记,重要的快捷键

由于工作中经常出现分支各种切换,使用Eclipse便不再像以前那么舒服了,不停的修改工作空间,每次修改完工作空间又是一堆一堆的个性化设置,来回的切换,真的很累.我们做软件的,怎么能不去尝试新鲜的呢,毕竟,再难走的路,也有人已经走过,我们只需要Google一下而已. 本篇适用于Idea 14.x 15.x 16.x 这次在使用了2天的IDEA之后,我发现这玩意简直屌爆了! 这次我重新进行征服IDEA过程中,遇到了很多很多的问题,当然,有一句话说的很好,遇到一件很难搞的事情,但凡你有半点犹豫,那就肯

弹出窗口或者ProgressBar 等卡顿现象

一般大家都回遇到这种情况. 首先看看造成卡顿的情况 一种是手机配置太低,内存严重不足. 第二种是你的ui线程里面耗时的操作太多. 但是还有一种情况就是手机配置还可以,而且ui线程里面我们又没有做什么操作同样也会卡顿.这就让我们很纠结了,对吧. 我也遇到了这种情况 ,很纠结,看了很多资料,最终找到了原因:so 赶紧记下笔记. Android从3.0(API Level 11)开始,在绘制View的时候支持硬件加速,充分利用GPU的特性,使得绘制更加平滑,但是会多消耗一些内存.这样问题就被锁定在了硬