【问题标题】:How do constraints work programmatically?约束如何以编程方式工作?
【发布时间】:2013-09-22 07:21:02
【问题描述】:

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

我仅在 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 上下移动,甚至离开屏幕。

【问题讨论】:

    标签: ios objective-c constraints


    【解决方案1】:

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

    【讨论】:

    • 您是在代码中创建包含的视图,还是在界面构建器中创建?您可以更新您的问题以显示代码吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-10
    • 1970-01-01
    • 2018-11-25
    • 2021-08-09
    • 1970-01-01
    相关资源
    最近更新 更多