对于UIScrollView存在大量item的时候,性能不佳一直被人诟病。然后很多人也弄了不错的方案,但感觉都不够美观,我觉得这个东西其实没有那么复杂。找了下原因,也很简单,因为NGUI在更新组件的时候,并不会判断是否可见,也就是说只要你scroll滑动了,那么所有的item都会重新draw一次。那当然会卡了。
既然原因这么明显,那么直接将不可见的设置为active为false不就行了。
测试了一下,果然没问题,最关键的隐藏不可见组件的代码:
public void WrapContent ()
{
if(allChildren == null)
{
Debug.Log("no allchildren set");
return;
}
if (!mInitDone) Init();
if(scrollView == null)
{
return;
}
float itemSize = 0f;
if(scrollView.can