博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NGUI用UIGrid加载Item会有部分空出来的解决办法
阅读量:4655 次
发布时间:2019-06-09

本文共 1947 字,大约阅读时间需要 6 分钟。

NGUI用UIGrid加载Item会有部分空出来的解决办法----------------NGUI  3.8.0

先描述碰到的问题

我的Hierarchy

加载用的方法是如果加载的数据数多于已经存在的Item的数量,就创建;如果少于已经存在的Item的数量就把多余的隐藏起来;

但是在运行的时候会出现下图的情况

有一部分空了出来;

我想应该那部分空出来的是被隐藏的部分,于是在每次赋值的时候都给UIGrid Reposition了一下,但是还是不行

解决办法:

UIGrid下有个选项Hide Inactive ,非活动状态隐藏

勾选后

自动把隐藏部分占用的空间挤了出来

另附加载代码

----->数据多于激活的Item

 

1     List
list = FindAll();//所有现存Item的集合 2 var listA = list.Where
(s => s.gameObject.activeSelf == true);//激活的 3 var listD = list.Where
(d => d.gameObject.activeSelf == false);//未激活的 4 5 if (itemList.Count>=listA.Count())//如果现有的item不足或是正好那么多 6 { 7 Transform[] trs = listA.ToArray(); 8 //把现有的激活的item先利用上 9 for (int i = 0; i < trs.Length; i++)10 {11 trs[i].GetComponent
().rawdata = itemList[i];12 }13 14 15 //不够?把现有的隐藏的item激活了来利用16 Transform[] trd = listD.ToArray();17 for (int i = 0; i
().rawdata = itemList[i + trs.Length];21 }22 23 24 //还不够?new出来25 for (int i = 0; i < itemList.Count - trd.Length - listA.Count(); i++)26 {27 GameObject itemPre = Resources.Load("Backpack/Item") as GameObject;28 NGUITools.AddChild(grid.gameObject, itemPre).GetComponent
().rawdata = itemList[i + trs.Length+trd.Length];29 }30 }

 

------->数据少于激活的Item,就把没有用到的Item隐藏

 

else if (itemList.Count
().rawdata = itemList[i]; print(2); } else if(i>=itemList.Count) { listA.ElementAt(i-1).gameObject.SetActive(false); print(1); } print(3); } } grid.repositionNow = true;
View Code

 

 

转载于:https://www.cnblogs.com/tunging/p/4463792.html

你可能感兴趣的文章
设计模式六大原则之二:里氏替换原则
查看>>
SQL Server误区30日谈-Day22-资源调控器可以调控IO
查看>>
怎么部署TFS
查看>>
六、网络数据编码与解码
查看>>
解决xp搜索“文件中的一个字或者词组”失效
查看>>
南阳理工学院动态规划专题 回文字符串
查看>>
测试管理工具列表大全
查看>>
python windows package/module 安装
查看>>
MySQLdb
查看>>
python中文输出和写入文本
查看>>
Knight Moves
查看>>
无锁栈与无锁队列
查看>>
微信开发第8章 通过accesstoken将长连接转换为短链接
查看>>
[刷题]Codeforces 785D - Anton and School - 2
查看>>
四川红油的制法
查看>>
Java重写《C经典100题》 --21
查看>>
【Android基础】Fragment 详解之Fragment生命周期
查看>>
链表(裸题)
查看>>
11运算符重载
查看>>
磁盘系统的管理
查看>>