是否可以使用约束将视图高度指定为父视图的百分比,但也可以限制最大结果高度?
Is it possible to use constraints to specify a views height as percentage of the parent view, but also limit the maximum resulting height?
我是 XCode 的新手,已经使用界面生成器设置了视图控制器。根是一个堆栈视图,设置为对齐:填充和分布:按比例填充。
堆栈视图中的每个项目都固定到父堆栈视图,并且约束用于使用 Superview.Height 的乘数将高度指定为堆栈视图(即整个屏幕)的百分比。
这部分效果很好,所有视图都缩放到所需的高度百分比,并且在 iPhone 5s 这样的设备上看起来不错。
但是,在像 XS Max 这样的设备上,一些控件(例如文本字段)看起来太高了,而且里面的文本在上方和下方的 space 太多(与文本字段矩形相比)。
期望的结果是所有视图都随屏幕缩放,但如果分辨率和宽高比太大,文本字段将保持较小一点,并将剩余的 space 交给另一个观看次数。
我的第一个想法是在高度设置为小于或等于(例如)30 以及现有高度百分比的文本字段中添加第二个约束。但我已经尝试过了,并尝试了不同的优先级值,但到目前为止没有成功。
有没有什么方法可以在当前(平面)视图层次结构上使用约束和自动布局来达到预期的效果?
还是考虑添加嵌套堆栈视图并在嵌套堆栈视图上设置百分比高度约束,同时让内部的文本字段处理自己的高度更好?
感谢建议!
Distribution: Fill Proportionally
可能是最容易被误解的 属性 堆栈视图,并且可能没有按照预期(或想要的)进行操作。
根据 OP 的评论...更改分发 属性(我假设它已更改为 Fill
)解决了问题。
我是 XCode 的新手,已经使用界面生成器设置了视图控制器。根是一个堆栈视图,设置为对齐:填充和分布:按比例填充。
堆栈视图中的每个项目都固定到父堆栈视图,并且约束用于使用 Superview.Height 的乘数将高度指定为堆栈视图(即整个屏幕)的百分比。
这部分效果很好,所有视图都缩放到所需的高度百分比,并且在 iPhone 5s 这样的设备上看起来不错。
但是,在像 XS Max 这样的设备上,一些控件(例如文本字段)看起来太高了,而且里面的文本在上方和下方的 space 太多(与文本字段矩形相比)。
期望的结果是所有视图都随屏幕缩放,但如果分辨率和宽高比太大,文本字段将保持较小一点,并将剩余的 space 交给另一个观看次数。
我的第一个想法是在高度设置为小于或等于(例如)30 以及现有高度百分比的文本字段中添加第二个约束。但我已经尝试过了,并尝试了不同的优先级值,但到目前为止没有成功。
有没有什么方法可以在当前(平面)视图层次结构上使用约束和自动布局来达到预期的效果?
还是考虑添加嵌套堆栈视图并在嵌套堆栈视图上设置百分比高度约束,同时让内部的文本字段处理自己的高度更好?
感谢建议!
Distribution: Fill Proportionally
可能是最容易被误解的 属性 堆栈视图,并且可能没有按照预期(或想要的)进行操作。
根据 OP 的评论...更改分发 属性(我假设它已更改为 Fill
)解决了问题。