木骰

UGUI:关于ScrollRect的复位问题

对于ScorllRect的复位,之前一直用的给grid的localPosition赋值为0的做法,结果出现了一个拉扯的过程,这是因为给grid的localposition赋0的时候,grid的边框位置低于scrollrect的范围,而scrollrect又设置了clamped或是Elastic,强行把grid拉回裁剪范围之内,所以就有了这个拉扯的动画过程。
正确的做法应该是设置grid的anchorPosition,而不是localPosition。看一下在编辑器下Grid初始位置的坐标然后直接赋值就可以了。
值得注意的一个点是:如果是在滑动的过程中给grid复位了,因为scrollrect有个惯性的效果,所以复位了之后位置又被滑动了,所以在给grid复位了的语句之后要紧跟一句scroll.StopMovement(); 停止scroll的滑动。


(grid.transform as RectTransform).anchoredPosition = Vector3.zero;
 scroll.StopMovement();
— 于 共写了459个字
— 文内使用到的标签:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*