接口构建器中的约束“width equals height”,对于相同的视图:如何创建这样的约束?

时间:2014-10-25 09:41:48

标签: ios macos interface-builder nslayoutconstraint

我想为同一个视图创建一个约束“width equals height” (因此,我的视图将是方形的)。 this answer中给出的方法不起作用,因为它不是两个不同视图之间的约束。

有可能吗?

2 个答案:

答案 0 :(得分:14)

控制+从视图拖动到自身,然后将宽高比设置为1:1。

答案 1 :(得分:1)

在Interface Builder中设置一个窗口,以包含一个NSBox&将约束设置为所有方面的标准值。然后将{IBOutlet NSBox *box;}添加到AppDelegate.h&在IB中将盒子插座连接到盒子上。在AppDelegate.m中将以下内容添加到applicationDidFinishLaunching&运行代码。我想这就是你所追求的。如果要以编程方式添加约束,请务必添加足够的高度和宽度。宽度约束以指定您想要的内容。除了其他约束之外,只需添加此类约束。

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {

    box.translatesAutoresizingMaskIntoConstraints = NO;
    [box addConstraint:
     [NSLayoutConstraint constraintWithItem:box
                                  attribute:NSLayoutAttributeWidth
                                  relatedBy:NSLayoutRelationEqual
                                     toItem:box
                                  attribute:NSLayoutAttributeHeight
                                 multiplier:1
                                   constant:0]];
}