使用NSLayoutConstraint更改约束

时间:2016-06-24 02:38:27

标签: ios swift autolayout xcode8

Project的Github repository

例如,我改变了这个:

let orangeViewCenterXConstraint = NSLayoutConstraint(
  item: orangeView,
  attribute: .centerX,
  relatedBy: .equal,
  toItem: view,
  attribute: .centerX,
  multiplier: 1.0,
  constant: 0.0
)

为此:

orangeView.centerXAnchor.constraint(equalTo: view.centerXAnchor)

如何以正确的方式执行相同的操作:

let purpleViewBottomSpaceConstraint = NSLayoutConstraint(
  item: purpleView,
  attribute: .bottom,
  relatedBy: .equal,
  toItem: orangeView,
  attribute: .top,
  multiplier: 1.0,
  constant: -8.0
)

我尝试过:

purpleView.bottomAnchor.constraint(equalTo: <#T##NSLayoutAnchor<AnyObject>#>, constant: <#T##CGFloat#>)

但我认为purpleView需要purpleVieworangeView之间的空格,技术上equalTo: orangeViewconstant: -8.0,但这是错误的。

我不确定我目前在做什么,所以我在这里学习。

1 个答案:

答案 0 :(得分:1)

您必须指定topAnchor,例如:

NSLayoutConstraint.activate([
    purpleView.bottomAnchor.constraint(equalTo: orangeView.topAnchor, constant: -8)
])