约束如何以编程方式工作?

时间:2013-09-22 07:21:03

标签: ios objective-c constraints

我正在尝试通过制作一个如下所示的简单项目(单一视图应用程序)来学习约束如何以编程方式为iOS应用程序工作:

enter image description here

我在viewDidLoad中仅使用此代码成功创建了顶部空间:

NSLayoutConstraint *myConstraint =[NSLayoutConstraint
                                   constraintWithItem:_container
                                   attribute:NSLayoutAttributeTop
                                   relatedBy:NSLayoutRelationEqual
                                   toItem:self.view
                                   attribute:NSLayoutAttributeTop
                                   multiplier:1.0
                                   constant:200];

[self.view addConstraint:myConstraint];

myConstraint =[NSLayoutConstraint
               constraintWithItem:_container
               attribute:NSLayoutAttributeHeight
               relatedBy:NSLayoutRelationEqual
               toItem:nil
               attribute:NSLayoutAttributeNotAnAttribute
               multiplier:1.0
               constant:216];

[_container addConstraint:myConstraint];

但是我没有设置_container的高度(UIView - superview的子视图)。在这种情况下,我如何创建多个约束?谢谢。

更新:我将以编程方式操作顶部空间的大小,以便_container可以上下移动,甚至可以在屏幕外移动。

1 个答案:

答案 0 :(得分:3)

您可以使用可视格式语言在代码中设置高度约束:"V:[view(==216.0)]"或使用constraintWithItem:,其中第二项为nil,第二个属性为NSLayoutAttributeNotAnAttribute,常数值是你的身高。