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
"Width equals height" constraint in Interface Builder
提问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
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:
你不能,因为宽度/高度编辑器缺少与另一个属性相关的字段或设置比率:
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];