直播APP开发之iOS开发中的列表优化思路

APP开发中,列表可能是平时我们打交道最多的UI控件之一,其重要性不言而喻,对其性能的优化同样至关重要。而对于iOS开发,列表就是我们常说的UITableView / UICollectionView。在进行直播APP开发时针对于列表的优化自然是必不可少的。

这里以UITableView为例简略介绍一下列表优化思路。

(1) cell复用。这是每一个iOS开发者都非常熟悉的一部分内容。我们经常在cellForRowAtIndexPath:中为每一个cell绑定数据,实际上在调用cellForRowAtIndexPath:的时候cell还没有被显示出来,为了提高效率我们应该把数据绑定的操作放在cell显示出来后再执行,可以在tableView:willDisplayCell:forRowAtIndexPath:(以后简称willDisplayCell)方法中绑定数据。注意willDisplayCell在cell 在tableview展示之前就会调用,此时cell实例已经生成,所以不能更改cell的结构,只能是改动cell上的UI的一些属性(例如label的内容等)。

(2) 减少视图数目。我们在cell上添加系统控件的时候,实际上系统都会调用底层的接口进行绘制,大量添加控件时,会消耗很大的资源并且也会影响渲染的性能。当使用默认的UITableViewCell并且在它的ContentView上面添加控件时会相当消耗性能。而且在初始化cell的时候就尽量把需要显示的内容全部创建完毕,然后根据需要显示或者隐藏,不要动态创建控件。

(3) 异步操作。我们时常会看到这样一个现象,就是加载时整个页面卡住不动,怎么点都没用,仿佛死机了一般。原因是主线程被阻塞了。所以对于网路数据的请求或者图片的加载,我们可以开启多线程,将耗时操作放到子线程中进行,异步化操作。

(4) 按需加载。滑动很快时,只加载目标范围内的cell,这样按需加载(配合SDWebImage),极大提高流畅度。举个简单的例子:

当然别忘了在cellForRowAtIndexpath:代理方法中加入以下几句

对于专业从事直播APP开发的软件公司的技术人员来讲,列表优化是常常用到的。当然,其他的APP开发如果采用相同控件的话,本篇优化思路同样适用。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏進无尽的文章

扒虫篇-使用Xcode8上传到AppStore 无法构建版本 没有➕号

由于公司产品需要上架,在准备好相关文件后,就火速设置好itunsConnect里面的内容,使用Xcode8火速上传 ipa文件到 AppStore后就开心的准备...

16520
来自专栏西城知道

PicGo – 免费开源的图片上传与管理工具 (Markdown写作贴图 / 跨平台图床应用)

 建站不免会加入一些图片进行展示、说明,亦或者装饰,但是内容多了,图片也随之增加,保存本地略显臃肿,不利于搬迁网站,但搭建图床网站未免也是如此,那么如何节省空间...

52940
来自专栏优启梦

全平台通用评论神器一键自动填写昵称、邮箱和网址

我们在访问网站时,看到一篇文章,想发表评论时,是否经常要在评论框里手动填写自己的昵称、E-mail 和网址等留言评论信息?重复的打字会让我们感到很乏味。 为了解...

474150
来自专栏MixLab科技+设计实验室

02技能之谷歌Chrome爬虫 |数据爬取及可视化系列

今天更新一篇《数据爬取及可视化系列》的技能相关的文章:爬虫技能。 前阵子研究了nodejs爬虫相关的内容,发现最好用的还是casperjs,一个基于Phanto...

51090
来自专栏葡萄城控件技术团队

渐进式Web应用(PWA)入门教程(上)

16220
来自专栏Youngxj

全平台通用评论神器一键自动填写昵称、邮箱和网址

20730
来自专栏三水清专栏

iOS 真机调试微信小程序

平时开发小程序可以在开发者工具中进行调试,开发者工具提供了类似 Chrome DevTools 的调试面板,对于前端开发者来说入门门槛比较低。

2K100
来自专栏DeveWork

Customizer Library:主题“自定义”功能的WordPress类库

这里说的WordPress主题中的“自定义”功能实就是指的是“外观”-“自定义”那里。不过一些第三方主题可能没有这个功能,如果你想在这个“自定义”上想扩展多点,...

22670
来自专栏宝塔面板

腾讯云中宝塔面板升级专业版

61420
来自专栏一场梦

全平台通用评论神器一键自动填写昵称、邮箱和网址

14030

扫码关注云+社区

领取腾讯云代金券