是否可以使用约束将视图高度指定为父视图的百分比,还可以限制最大结果高度?

问题描述 投票:0回答:1

我是XCode的新手,并使用界面构建器设置了一个视图控制器。根是一个堆栈视图设置为对齐:填充和分布:按比例填充。

堆栈视图中的每个项目都固定到父堆栈视图,约束用于使用Superview.Height的乘数将堆叠视图(即整个屏幕)的百分比指定为高度。

这部分效果很好,所有视图都缩放到所需的高度百分比,并且在iPhone 5s等设备上看起来很不错。

但是,在像XS Max这样的设备上,某些控件(如文本字段)看起来太高,内部文本在上方和下方会占用太多空间(与文本字段矩形相比)。

期望的结果是所有视图都随着屏幕缩放,但是如果分辨率和宽高比太大,则文本字段将保持稍微小一些并且产生剩余空间给其他视图。

我的第一个想法是在文本字段中添加第二个约束,其中高度设置为小于或等于(例如)30以及现有高度百分比。但我已经试过了,并尝试了不同的优先级值,但到目前为止没有运气。

有没有办法在当前(平面)视图层次结构上使用约束和自动布局来实现所需的结果?

或者,最好是在嵌套堆栈视图中添加嵌套堆栈视图并设置百分比高度约束,同时让内部文本字段处理自己的高度?

建议赞赏!

ios xcode autolayout interface-builder
1个回答
1
投票

Distribution: Fill Proportionally可能是堆栈视图中最容易被误解的属性,并且很可能没有达到预期的(或者想要的)。

根据OP的评论......更改Distribution属性(我假设它已更改为Fill)修复了该问题。

© www.soinside.com 2019 - 2024. All rights reserved.