今天做项目遇到了一个很无奈的事. 在使用NGUI做Scroll View功能时我在Scroll View下面使用了UIGrid进行排列拖动项.
但是最后发现UIGrid居然不可以设置锚点.每个可拖动项也不可以设置锚点,因为即使加了脚本后可以设置也会出现问题,运行后拖动选择项会出现抖动现象,因为他们是有锚点的会根据位置调整一下,出现抖动的反应.
后来我发现虽然不可以在UIGrid上设置锚点但是可以控制UIGrid上Transform的大小这样里面的选择项也会跟着放大和缩小了.找到方法后我开始想怎么实现它最好.然后我找到了UIStretch这个脚本,可根据设置改变对象的大小.但上面的设置选项并没有符合我要求的选项.索性我就自己加了一条.
//首先在脚本的前面加入一个选择项 public enum Style { None, Horizontal, Vertical, Both, BasedOnHeight, BasedOnWidth,//fgreen加入的代码; FillKeepingRatio, FitInternalKeepingRatio } //然后在UPDATE里面加入if判断根据自己设置的默认宽高进行比例缩放 if (style == Style.BasedOnHeight) { size.x = relativeSize.x * rectHeight; size.y = relativeSize.y * rectHeight; } else if (style == Style.BasedOnWidth)//fgreen加入的代码 { size.x = relativeSize.x * Screen.height/854;//我项目中设置默认的是854的高和480的宽; size.y = relativeSize.y * Screen.width/480;//当屏幕宽带大于或小于它们时求它们的除数; size.z = size.x; }