问题来了
笔者最近开发一个游戏项目,需要对
UIListView
的加载速度做处理 —— 产品经理希望它可以快速加载100个
Item
,且不能有卡顿的感觉。那么,问题来了,怎么样才能使
UIListView
做到快速而不卡顿呢?
作为程序,只有我们知道技术的实现细节。我们知道,
UIListView
是一个一个
PushItem
的,你急也没用。当时我试过了常规的三种方法,它们分别是:
- 逐帧加载
- 延时加载
- 滚动到底部再加载
方法1、2在实质上是一样的,都属于 延时加载 的范畴;方法3比较有趣,只有当
UIListView
监听到自己滑动到底部的时候才会去加载剩下的一部分,当然我们需要开启它的滑动监听。
如果有需要,我会在之后介绍一下这三种常规做法,这里先不作议论。
诚然,当数量不多的时候
(比如 <= 100),这三种常规方法的加载速度也算是无可厚非了。从速度上看,
方法3 > 方法1 > 方法2
;但从体验上看,
方法1 > 方法2 > 方法3
。这是因为方法3开始只会加载一小部分,所以你需要不停地滑动到底部、滑动到底部,直到将所有内容全部加载完毕,而方法1、2只要启动之后,就会按部就班地开始一条一条的加载。
当数量超过一定数值
(可能 >= 100,主要看需要渲染和处理Item的数据大小)后,你会发现
UIListView
总是一顿一顿的,当你尝试滑动的时候,这种卡顿的感觉会尤其明显,这极其影响用户的体验。