Interface Builder中的"宽度等于高度"约束

Dem*_*ath 89 interface-builder ios autolayout nslayoutconstraint

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

Jan*_*ano 180

更新Xcode 5.1b5

宽度等于高度

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


在Xcode 5.1之前

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

宽度约束

因此,您无法在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];
Run Code Online (Sandbox Code Playgroud)

  • 在Xcode 7中,从视图中按住Ctrl并单击拖动并在其自身顶部释放,然后选择"宽高比" (3认同)