UGUI滑动容器的优化思路

来源:互联网 发布:西安黑马程序员 编辑:程序博客网 时间:2024/05/16 13:07

UGUI滑动容器的优化思路

首先,为什么要去优化滑动容器,一般都是为了解决在手机上的加载速度和性能优化。

这是优化完后的效果
这里写图片描述

首先要明确一点:一个View里面会包含一个数据,这个数据具体是什么,我们不需要去关心,只要知道在数据赋值的时候传递出去就可以了。所以我们可以用一个 objct 来代替这个数据。

接口定义

这里写图片描述

为什么要定义接口,因为接口是可以多继承的,而且我们也需要这些方法去实现我们的具体操作。
object itemData 就是我们的数据,必要的。
int Index 是数据的下标,必要的。
void UpdateItem 更新Item,一般是在外界数据被修改后,然后去更新,具体怎么更新,由继承者实现
OnRecycle(); 作用,当一个物体不需要去操作的时候,我们会在这实现他的隐藏或者删除。
GameObject GetMountObj() 一般获取它挂载的物体,和前者需要对应,因为我们要拿到他的脚本去做进池或者释放等操作。
最后一个方法基本没啥用。可以用前者,也可以用这个。

实现思路:当我往上滑动的时候,到达底部,如果我还有数据,我肯定是要创建出来,所以我不可能把数据重新赋值一次,且不提性能的问题,单单刷一遍,在低端机会出现更新数据的一种视觉上的卡顿。

所以我这边是这样做:当我第一次创建数据的时候,我会提前多创建一个空的数据,作为备用数据,当我顶部或者底部需要创建数据的时候,这玩意就会跑去对应的位置然后重新刷新数据,就不会全部的一起刷新数据,同时,相反位置的最后一个元素就会被隐藏,它就成为备用的。

原创粉丝点击