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