Interface Builder中的“宽度等于高度”约束

时间:2013-03-01 22:03:02

标签: ios interface-builder autolayout nslayoutconstraint

我找不到在Interface Builder中创建'square'约束的方法,意思是'width equals height'。我想可以通过编程方式添加这样的约束。我可以在IB做些什么吗?也许我只是看不到它?这似乎微不足道,但我找不到它。

3 个答案:

答案 0 :(得分:176)

更新Xcode 5.1b5

width equals height

按住Ctrl键并从视图中拖动并在指针位于视图上方时释放。选择“宽高比”。它将创建一个约束,其中第一个和第二个项目是视图。


在Xcode 5.1之前

你不能因为宽度/高度编辑器缺少与另一个属性相关的字段或设置比率:

width constraint

因此,您无法在Interface Builder中表达以下代码:

CGFloat ratio = 1.0;
NSLayoutConstraint *constraint = [NSLayoutConstraint
    constraintWithItem:myView
    attribute:NSLayoutAttributeWidth
    relatedBy:NSLayoutRelationEqual
    toItem:myView
    attribute:NSLayoutAttributeHeight
    multiplier:ratio
    constant:0];
constraint.priority = 1000;
[myView.superview addConstraint:constraint];

答案 1 :(得分:0)

请在图像中的UI元素上添加一个新的约束,将宽高比设为1:1。

Set Aspect ratio to 1:1

答案 2 :(得分:0)

要开始,请控制按钮从对角线向自身拖动。将出现一个上下文菜单,您可以在其中添加宽​​度和高度约束。 Shift +单击每个;将会出现一个选中标记,表明您已添加约束。 (如果您在添加两个对话框之前不小心关闭了对话框,可以的,只需重复拖动步骤并设置另一个对话框即可)

enter image description here

首次添加时,这些约束采用按钮的当前宽度和高度,因此您需要调整每个约束以为其提供更合适的值。尽管我们的图片是正方形的,但我们必须一次执行一次,因此请确保在两个约束中使用相同的常数值来按比例调整按钮的大小。双击约束,然后在其常量字段中输入一个较小的值:

enter image description here