iOS一群程序猿的秘密基地工程

iOS解决滑动页面卡顿的基本技巧

2016-02-24  本文已影响11268人  骁驰

iOS解决滑动页面卡顿的基本技巧


引言

在开发中我们常常会遇到布局比较复杂的cell,在滑动的时候会导致界面不流畅,出现卡顿的现象,这是由于CPU计算和GPU渲染,之间未及时交换数据丢失帧导致的结果。

imageView尽量设置为不透明

当imageView的opque设置为YES的时候其alpha的属性就会无效,imageView的半透明取决于其图片半透明或者imageView本身的背景色合成的图层view是半透明的。

如果图片全部不是半透明就不会触发图层的blend操作,整个图层就会不透明。

如果叠加的图片有出现半透明的,就会立马触发图层的blend操作,整个图层不透明。

当opque为NO的时候,图层的半透明取决于图片和其本身合成的图层为结果。

当某一块图层的alpha和其superView的背景色alpha不一样的时候会触发alpha合成操作,这是一项看似很简单但却是非常消耗CPU性能的操作。至于alpha叠加的概念如果有问题可以查看官方说法。

UIView的背景色设置

cell上layer尽量避免使用圆角

离屏渲染:是GPU渲染区的一个渲染缓冲区,我们所用的所有显示屏的图形图像都是通过GPU进行渲染,然后显示在屏幕上。GPU负责渲染会把渲染的图形放到缓冲区然后CPU就会发一个垂直信号显示到屏幕。

优化图片的加载方式

我们都知道图片的加载方式有两种形式:

1、UIImage *headerImage = [UIImage imageNamed:@"haodf.png";
2、UIImage * headerImage = [UIImage imageWithContentOfFile:@"haodf.png"];

我们讲讲两种加载图片方式的区别:

这种方式是把图片缓存在图片缓存区,当我们使用的时候会通过图片的名字也就是通过key的方式去查找图片在缓存区的内存地址。

当我们使用很多图片的时候系统就会开辟很多内存来存储图片,所以qq、微信我们很多时候都会去清除缓存操作。

尽量延迟图片的加载

最重要的一点就是避免阻塞主线程

争议最多的xib、storyBoard、纯代码的问题

备注

上一篇下一篇

猜你喜欢

热点阅读