ugui auto layout
controlsize 用于迫使子类在一个固定范围内,压缩子类
一般不使用,当使用的时候会添加上contentsize 去适配,实现不压缩子类
而且可以使子孙类item删除后,自动缩小
controlsize 会使item没有设置图片的压缩成很小,一个gameobj子物体里面有图片 一个label
expand 会使item 分散在头部尾部 一般不用
laout最会作用于子类不会作用于孙子类
不选择controlsize 在扩展后,删除item不会缩小
一般来说**laout即可不用设置其他
一般来说像tips 会选用vertical layout
当里面只有文本的时候选择control size不会有问题。里面的text会自动根据内容变化大小
而当有文本和图片同时存在的时候(文本和图片相隔)。选用controlsize后,图片会被压缩很小
此时需要给图片增加layout element
而当有文本和图片,图片里面要包含图片的时候。需要给图片一个layout vertical,使得图片会计算大小的时候
文字会计算在内。还要给图片一个content size 保证图片和文字一样大
如果不选用control size 则需要文字添加contentsize 图片添加contentsize和layout
里面全是text 使用force expand 会设置text的位置填满空间
使用controlsize 会设置text大小填满空间 text大小比文字大
只有当使用content size会设置大小刚好和文字一样大
总结:controlsize 和 expand 和content size 缺一不可,刚好可以实现完美适配,
如有特殊需要可增加layout element
官网对于autolayout 分为6个
其中layout element 用于子物体,剩下的用于父物体
layout element
如何确定尺寸的基本原则如下:
- 首先申请最小的尺寸
- 如果这里有足够的可用空间,那么就申请首选尺寸
- 如果还有额外的可用空间,那么就申请灵活尺寸
一个item带了layout element 其他item都要带
horizon 勾选了control child size 和 child force expand的时候需要带该脚本
expand代表不改变child的大小的情况下填充满
control child代表 改变child的大小下填充满
正常情况 control child size 和 child force expand都不勾选
当勾选的时候证明需要填满,如果需要填满的情况下要求item大小都不一样就需要带layout element
content size fitter
content size 一般用于 text的自动缩放,即 当文字多的时候,width会自动扩张,此时的width不能修改,属于只读类型
或者用于 scrollview 里面的contain ,当代码动态增加一些item的时候,contain自动增加width或者heigh,
保证永远能够滑动显示所有物体
还可以用于保证物体从两边增加,即pivot在中间,显示奖励居中很方便
aspect ratio fitter
aspect ratio 用于适配,比如一个物体占据了屏幕,当父类物体进行放大的时候,子物体也跟着放大(此时任意一边(长或者高)到达即停止缩放)
horizontal layout group
padding表示当expand 整个rect的时候。window的范围
spacing 表示item之间的空隙
child alignment 表示当没填充满的时候 item 位于rect的位置
control child size 勾选 表示会控制 item的大小
child force expand 表示item会尽量覆盖满
vertical layout group
此处同理不复述
grid layout group
padding 同理
cell size 为item 的宽高
spacing 为item 的间距
start Corner 为序号的第一个在哪里
start Axis 为序号从横排还是从竖排
child alignment 为靠rect的哪个位置
constraint 为 flexible 即通过rect大小决定行数
constraint 为 fixed column count 即为固定列数
constraint 为 fixed row count 即为固定行数