ios - 如何在代码中设置 NSLayoutConstraint 常量的变体?

标签 ios swift nslayoutconstraint

我已经在我的代码中拖放了约束并且可以访问它。

@IBOutlet weak var betweenTextTerms: NSLayoutConstraint!

然而,似乎我所能做的就是设置常量。 但是如何在代码中设置诸如 Compact Regular 之类的变体的值?

enter image description here

最佳答案

要以编程方式执行此操作,您需要覆盖 View Controller 中的 traitCollectionDidChange: 方法。

然后您可以查看 self.traitCollection.horizo​​ntalSizeClassself.traitCollection.verticalSizeClass 来决定要做什么。使用您创建的对布局约束的引用来相应地设置常量。

设置所有布局约束后,调用 View 上的 updateConstraints 以触发布局传递。

例如:

override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
    let hCompact = (self.traitCollection.horizontalSizeClass == .compact)
    let vRegular = (self.traitCollection.verticalSizeClass == .regular)

    if hCompact && vRegular {
        self.betweenTextTerms.constant = 45
    }

    self.updateViewConstraints()
}

对于简单的情况,在 Storyboard 中这样做会更方便!

关于ios - 如何在代码中设置 NSLayoutConstraint 常量的变体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53181091/

相关文章:

iphone - "initialiser element is not a compile-time constant"创建 GCD 队列时

ios - 有人设法在 iOS 上使用 Firebase 实现了 LinkedIn 登录吗?

swift - Alamofire Swift 转换

ios - 为每个 View Controller 指定后退按钮的行为

ios - 更改 NSLayoutConstraint 时的 SWIFT 动画

子类中的 Swift 约束

ios - 我应该用哪种方法检查 NSUserDefaults?

ios - 如何从 JSON DarkSky swift 获取一天

ios - FB.login()phonegap facebook 插件出错

ios - 如何使用 Swift 以编程方式添加约束