代码之家  ›  专栏  ›  技术社区  ›  Houman

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

  •  2
  • Houman  · 技术社区  · 7 年前

    @IBOutlet weak var betweenTextTerms: NSLayoutConstraint!
    

    但是如何为代码中的紧凑正则等变体设置值呢?

    enter image description here

    1 回复  |  直到 7 年前
        1
  •  3
  •   ncke    7 年前

    要以编程方式执行此操作,请重写 traitCollectionDidChange: 方法。

    你可以看看 self.traitCollection.horizontalSizeClass self.traitCollection.verticalSizeClass

    设置完所有布局约束后,对视图调用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()
    }
    

    对于简单的案例,在情节提要中这样做要方便得多!