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

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/15167607/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-30 22:31:40  来源:igfitidea点击:

"Width equals height" constraint in Interface Builder

iosinterface-builderautolayoutnslayoutconstraint

提问by DemoniacDeath

I can't find a way to create a 'square' constraint, meaning 'width equals height' in Interface Builder. I guess it's possible to add such constraint programmatically. Is there something I can do in IB? Maybe I just don't see it? It seems trivial, yet I can't find it.

我找不到在 Interface Builder 中创建“正方形”约束的方法,这意味着“宽度等于高度”。我想可以通过编程方式添加这样的约束。IB有什么我可以做的吗?也许我只是没有看到它?看起来微不足道,但我找不到它。

回答by Jano

Update Xcode 5.1b5

更新 Xcode 5.1b5

width equals height

width equals height

Ctrl+click and drag from a view and release while the pointer is over the view. Select "Aspect Ratio". It will create a constraint where the first and second item is the view.

Ctrl+单击并从视图中拖动并在指针悬停在视图上时释放。选择“纵横比”。它将创建一个约束,其中第一项和第二项是视图。



Before Xcode 5.1

Xcode 5.1 之前

You can't because the width/height editor lacks the fields to relate to another property or set the ratio:

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

width constraint

width constraint

Therefore, you can't express the following code in Interface Builder:

因此,您无法在 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];

回答by user550088

Please add a new constraint, aspect ratio to 1:1 on the UI element as in the image.

请在 UI 元素上添加一个新的约束,纵横比为 1:1,如图所示。

Set Aspect ratio to 1:1

Set Aspect ratio to 1:1