【小松教你手游开发】【unity实用技能】NGUI Scrollview的Reposition的几个
  JtoKu4tUG9ir 2023年11月02日 96 0

NGUI的Scrollview当要重置的时候那几个reposition阿,ResetPosition,repositionNow什么的非常烦。

现在稍稍总结一下

首先。分清两个概念。一个是UIScrollview,一个是UIGrid。

UIScrollview是负责显示用的,UIGrid会在UIScrollview下。移动啊,置顶啊,其实都是UIScrollview控制的。

Scrollview.ResetPosition()就是让这个表格回到顶端(默认顶端,可以自己设置)

UIGrid是负责把所有数据放到UIGrid这个框框里的。操作只跟自己框框内的有关,所有这个UIScrollView的移动跟这个没关系。

所以grid.Reposition()只是让格子里的数据重新排布一下。

grid.repositionNow = true;是让格子立刻刷新。

(在使用过程中发现只有下面的能用。看里面也没懂为什么。。。)

所以说当你要删除数据中的一条时,就是把那个GameObject删掉。

然后grid.repositionNow = true;让UIGrid里面下面的数据网上推

然后scrollview.ResetPosition();//让Scrollview重新刷一下回到顶端。

但是如果不需要去到顶端就不用scrollview.ResetPosition();了。

但是这个会有一个问题就是grid.keepWithinPanel = true会告诉UIScrollview这些数据需要显示在框框里,但是你又在移里面的位置。这时候就会出问题。

所以解决的方法是暂时设为false。

所以总代码如下:

//Update grid  
bool originalKeepWithinPanel = _itemGrid.keepWithinPanel;  
_itemGrid.keepWithinPanel = false;  //Need to set this to false or else buttons will not properly be at top if player scrolls past bottom then switch tabs  
_itemGrid.repositionNow = true;  
//_scrollView.ResetPosition(); //Reset and move scroll panel back to original start position, required before and after tabbing - see ngui docs  
_itemGrid.keepWithinPanel = originalKeepWithinPanel;  
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  2vTtx67pWwKL   2023年11月02日   38   0   0 摩杜云123
123
  laohnQZsRy6w   2023年11月02日   58   0   0 摩杜云racing
JtoKu4tUG9ir