首页
登录 | 注册

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

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

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

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

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

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

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

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

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


相关文章

  • 首先你要花点时间针对objective-c语言的学习:毕竟这个是iOS开发的基础(你也可以尝试用Swift,但此项目只是针对OC),编程套路其实都是差不多,多写多想多实践:关于环境的搭建就不在本文进行介绍,这部分内容可以自行百度或谷歌,都有 ...
  • 每个人的都有独特的经历,因此会有特别的事情会让ta感到快乐,并享受做自己喜欢的事情.写程序也不例外,我在很年轻的时候就明白这点,它成为我开始创业的无形资产.写程序的渴望来自我想完整独立做一件事情的渴望,做移动开发,可以让我不依赖任何人就能学 ...
  • 6年iOS开发被裁员,是行业的饱和还是经验根本不值钱?
    最近看到很多iOS开发由于公司裁员而需要重新求职的.他们普遍具有4年甚至更长的工作经验.但求职结果往往都不太理想. 由于工作年限较长,他们普遍认为工资就是应该随着工作年限增长而不断提升的.但事实却是:你的工资不是和你的工作年限成正比,而是和 ...
  • 微信小程序开发之全屏显示
    我的小程序只有一个地图,如下代码,但他不是全屏的, 效果如下: 打开控制台进行css控制,但还是不行,所以得控制page. 原文链接
  • 关于直播系统和短视频系统安卓手机屏幕适配的方向思路
    直播与短视频的接踵而至,将互联网推向了网红经济时代,而智能手机的更新迭代为二者的发展提供了"温床".但随着Android机型的增多,设备碎片化的程度也在不断加深,因此为了保证用户在不同Android机型下的体验效果一致, ...

2020 unjeep.com webmaster#unjeep.com
12 q. 0.014 s.
京ICP备10005923号