scrollview的优化

针对一次加载很多格子的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是每次滑动都会调用的函数。

posted @ 2019-08-12 18:04  mc宇少  阅读(498)  评论(0)    收藏  举报