在代码中指定高度约束

时间:2013-03-30 17:08:44

标签: objective-c height autolayout

我想在代码中指定固定的NSView高度。使用方法addConstraint:我可以指定对象属性之间的关系,但我不能说:“这个NSView应该是50像素高”。谁知道怎么做?谢谢!

2 个答案:

答案 0 :(得分:1)

whatabout:

[myView addConstraint:
    [NSLayoutConstraint
        constraintsWithVisualFormat:@"V:[myView(50)]"
                                options:0
                                metrics:nil
                                  views:NSDictionaryOfVariableBindings(myView)
    ]
];

但请记住,您现在只为视图添加了约束。您可能希望将它放在某种与其他对象相关的控制器中。拥有视图来设置自己的约束是完全没有问题的。这就是InterfaceBuilder中始终发生的事情。 UI的其他视图和元素之间的关系应位于视图树中的下一个更高级别。

答案 1 :(得分:1)

如果你不喜欢视觉约束格式,你也可以像这样设置。

    var heightCosntraint    = NSLayoutConstraint(item: seperationView,
    attribute: NSLayoutAttribute.Height, 
    relatedBy: NSLayoutRelation.Equal, 
    toItem: nil, 
    attribute: NSLayoutAttribute.NotAnAttribute, 
    multiplier: 1, 
    constant: 5.0)

    seperationView.addConstraint(heightCosntraint)