swift - NSLayoutConstraint 不起作用

标签 swift nslayoutconstraint

我想将 2 个按钮移动到屏幕宽度的中心。 它应该看起来像: |<-(100)FirstButton(50)->SecondButton(100)->|

我从第一个按钮开始。

var const = NSLayoutConstraint(item: firstButton, 
    attribute: NSLayoutAttribute.Left, 
    relatedBy: NSLayoutRelation.Equal, 
    toItem: view.superview, 
    attribute: NSLayoutAttribute.Left, 
    multiplier: 1.0, 
    constant: 100)

为什么不起作用?

最佳答案

似乎 firstButton 尚未将属性 translatesAutoresizingMaskIntoConstraints 设置为 false

translatesAutoresizingMaskIntoConstraints的 Apple 文档说明:

/* 默认情况下, View 上的自动调整大小掩码会产生完全确定的约束 View 的位置。这允许自动布局系统跟踪其 View 的帧 布局是手动控制的(例如通过 -setFrame:)。 当您选择通过添加自己的约束来使用自动布局来定位 View 时, 您必须将此属性设置为“否”。 IB 将为您做这件事。 */ @可用(iOS 6.0,*) open vartranslatesAutoresizingMaskIntoConstraints: Bool//默认 YES

因此,当您添加自己的约束时,必须将 firstButtontranslatesAutoresizingMaskIntoConstraints 设置为 false

关于swift - NSLayoutConstraint 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25530334/

相关文章:

swift - 如何在 Swift 中通过 super.init 修改子类的基类属性?

swift - WKInterfacePicker 标题

swift - 从 NSData 到 Swift 2 中的 SecKeyRef

ios - 如何避免旋转过程中的约束冲突?

ios - 在 UITabBarController 的 tabBar 前面呈现 ViewController 并隐藏这个 tabBar

ios - 以编程方式更新 iOS 约束

ios - 我的 UIImageView 中的约束有什么问题,为什么我不能在 UIViewController 上拉伸(stretch)图像?

ios - 如何在 Swift 中检索约束常量的值?

iOS:使用 NSLayoutConstraint 将对象堆叠在一起

json - Swift 4 用 ' - ' 字母解码 json