ios - 是否可以使用约束将 View 高度指定为父 View 的百分比,同时也限制最大结果高度?

标签 ios xcode autolayout interface-builder

我是 XCode 的新手,使用界面生成器设置了一个 View Controller 。根是设置为“对齐:填充”和“分布:按比例填充”的堆栈 View 。

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

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

但是,在像 XS Max 这样的设备上,某些控件(例如文本字段)看起来太高了,而且里面的文本上下空间太大(与文本字段矩形相比)。

期望的结果是所有 View 都随屏幕缩放,但如果分辨率和宽高比太大,文本字段将保持较小一点,并将剩余空间让给其他 View 。

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

有没有什么方法可以在当前(平面) View 层次结构上使用约束和自动布局来实现预期的结果?

或者考虑添加嵌套堆栈 View 并在嵌套堆栈 View 上设置百分比高度约束,同时让内部的文本字段处理自己的高度是否更好?

感谢建议!

最佳答案

Distribution: Fill Proportionally 可能是堆栈 View 最容易被误解的属性,并且很可能没有按照预期(或想要的)进行操作。

根据 OP 的评论...更改 Distribution 属性(我假设它已更改为 Fill)可以解决问题。

关于ios - 是否可以使用约束将 View 高度指定为父 View 的百分比,同时也限制最大结果高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55452013/

相关文章:

c - Xcode 在使用引用时不会编译 C 函数签名

ios - 使用自动布局问题调整 UIScrollView 中 UITextView 的大小

ios - 模态转场,但我需要一个模态礼物

ios - uitableview单元格动态高度

ios - 无法在启用自动布局的情况下设置 UIButton 框架的大小

swift - 更改 View 宽度约束

ios - 有没有办法在 NSCache 中存储一个可选数组?

ios - 如何通过 Alamofire 和 SwiftyJSON 在 UIViewController 中使用根目录中的 JSON 对象

ios - 为提供商创建 MZContentProviderUpload 时发生异常。 (1004)

ios - 将 UIView 中的数据显示到 UIViewController