ios优化UI显示速度



词汇解释


线程


CPU的一个极小的时间。


主界面(主UI)


例如网页的整个背景界面,又例如一张桌子可以看做主界面,二上面放的东西则不属于主界面。



本节重点


1.理解为什么本系列课程的前两个例子UI显示速度会很慢;


2.掌握优化UI显示速度的方法,即dispatch_async()方法。



内容介绍


通过前两课时的实践发现:通过浏览器访问请求示例耗费的时间远远小于在app中访问该数据的时间,这是为什么呢?


原来,因为CPU运行速度很快,几乎可以将一段很小的时间分割成无限多个线程,所以这无限多个线程可以看作同时在进行。而所有的异步请求的队列都是由系统另外所单独开辟的队列,异步线程与主界面线程不在同一个线程。下面我们看上一节所写的异步请求由上图可以看出


obtain1.png


在异步线程中我们再次调用了主界面的操作,导致了异步线程会阻塞主界面线程,使得主界面会有一定时间的延迟的冻死。只有当异步线程完成之后,主界面才发生变化,其实此时早已经获取到了,只是未显示而已。那有什办法可以解决这个问题呢?这就是我们本节需要了解的内容。


具体方法


将类似于self.imageViewQRCode.image=UIImage(data:data)这种对UI的操作放到主线程中去。那么如何将其放到主线程中去呢?我们有个方法,叫做dispatch_async()方法,具体使用示例如下:


obtain2.png


如果运行上图所示程序,我们就能发现二维码比天气状况先出现在主界面上,因为有关天气的主UI调用并没有使用dispatch_async()方法。天气状况的dispatch_async()方法使用如下:(可以对比上图与此图的差异加深理解)


obtain3.png


由此我们就可以快速有序的在APP上运行了,以上方法就是对UI的显示速度的优化!请大家注意掌握。



【本文由麦子学院独家原创,转载请注明出处并保留原文链接】

logo
© 2012-2016 www.maiziedu.com
蜀ICP备13014270号-4 Version 5.0.0 release20160127

免费领取价值1888元求职宝典!

客服热线 400-862-8862

回到顶部