scrollview的优化
阅读原文时间:2023年07月16日阅读:2

针对一次加载很多格子的scrollview的优化,第一次只加载可视区域的格子,其他的用空物体占位,在每次滑动时检测需要实例化的格子,通过对象池重用第一次的格子。可以根据每行格子的数量只检测每行的第一个格子是否需要更新,然后就可以更新一行或者跳过检测一行。

1.

//检测是否需要刷新UI

//o是格子,itemHalfHeight是格子高度的一半
bool CheckUpdate(GameObject o,float itemHalfHeight)
{
float itemCellOffestY = Mathf.Abs(mScroll.transform.InverseTransformPoint(o.transform.position).y);//格子相对于mScroll的偏移,mscroll是scrollrect组件
return (itemCellOffestY - itemHalfHeight) < (scrollHalfHeight) ? true : false;//scrollHalfHeight是scrollrect显示区域高度的一半
}

2.

mScroll.onValueChanged.AddListener(delegate { WrapContent(); });//添加滚动事件回调  ,WrapContent是每次滑动都会调用的函数。

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章