答案 0 :(得分:4)
考虑到你通过Storybaord处理约束(对我来说,在大多数情况下我更喜欢这样做),当组件大小必须与屏幕大小相关时,它的高度/宽度约束应该根据它们的< em>多人值。
为清楚起见,请考虑以下示例:
这是给定的场景:
黑色和蓝色视图尺寸均为:(width: 187.5, height: 66.5)
,但有一点,黑色视图宽度/高度约束基于常量值:
但蓝色约束基于多人值:
正如你所看到的,两个限制都在说:&#34;比例为:Superview&#34;意思是他们的价值观成比例地基于超级观点的价值。通过选择宽度视图 - 例如 - :
请注意,Multiplayer
值为0.5,这意味着此视图(蓝色视图)宽度将是superview宽度的一半大小,无论superview&的值是多少? #39;宽度。
如何添加此约束?
目前,它应该类似于:
选择约束并将其Multiplayer
值(来自尺寸检查器)编辑为所需的值。
或强>
即使是更简单的技巧,在添加约束之前,请确保所需的视图宽度等于超视图宽度,这样可以更轻松地更改Multiplayer
的值而不显示橙色约束。
<强>输出:强>
iPhone 7:
iPad Pro:
蓝色视图宽度始终是屏幕的宽度,同时黑色宽度具有固定的宽度。
答案 1 :(得分:2)
为图片创建高度约束并与控制器 image
匹配但布局
有更好的选择 @IBOutlet weak var yourConstraint: NSLayoutConstraint!
override func viewDidLoad() {
super.viewDidLoad()
let size = view.bounds.size.width
if size > 400 {
yourConstraint.constant = 230
}else if size > 350 {
yourConstraint.constant = 200
}else{
yourConstraint.constant = 170
}
}
答案 2 :(得分:1)
您应该选择要在故事板中设置的对象。然后单击ctrl按钮稍后将光标滚动到superview并单击equalwidth / equalheight属性并将乘数设置为所需的速率。它就是。