首页 > 代码库 > NGUI UIGrid(或UITable)回收利用Item预设体 [未解决]

NGUI UIGrid(或UITable)回收利用Item预设体 [未解决]

在我们的项目中,有挺多界面都需要垂直拖拽滚动面板,而面板上面有几十到上百个Item,这个时候肯定Item的动态添加肯定是用预设体来实现!

在编码的时候,尝试写个对预设体Item的回收再用list,但是却行不通(现在暂时是用网上大部分blog所提到的用Destroy(GameObject)来实现动态删除),我的想法是这样的:

1.使用Transform UIGrid.RemoveChild(int index)移除UIGird下的子控件,同时函数会返回被删除控件的Transform,这个时候重置数据再用list保存起来;

2.需要添加Item的时候就向list拿,若list为空就load预设体Item。

但实际上,调用UIGrid.RemoveChild(int index)函数之后,下断点调试检测UIGird的子控件数量(UIGird.transform.childCount)竟然没有变化!因为时间紧急,也没仔细查看RemoveChild函数里面的源码,不过,单单是上述所提到“UIGird的数量没有变化”这一点就让循环利用创建出来的预设体这一想法打了水漂~~希望是我还没完全了解NGUI UIGird组件,不然就太悲催了,每次需要添加Item就得Load预设体,然后删除就是直接调用Destroy函数!

 

等过阵子再抽时间仔细看看,先备忘一下。

NGUI UIGrid(或UITable)回收利用Item预设体 [未解决]