使用 NSLayoutConstraint 更改约束
change constraints with NSLayoutConstraint
项目的Githubrepository.
因此,例如,我更改为:
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
需要 purpleView
和 orangeView
之间的 space,所以技术上 equalTo: orangeView
、constant: -8.0
,但这是错了。
我不确定我目前在做什么,所以我来这里学习。
您必须指定 topAnchor
,例如:
NSLayoutConstraint.activate([
purpleView.bottomAnchor.constraint(equalTo: orangeView.topAnchor, constant: -8)
])
项目的Githubrepository.
因此,例如,我更改为:
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
需要 purpleView
和 orangeView
之间的 space,所以技术上 equalTo: orangeView
、constant: -8.0
,但这是错了。
我不确定我目前在做什么,所以我来这里学习。
您必须指定 topAnchor
,例如:
NSLayoutConstraint.activate([
purpleView.bottomAnchor.constraint(equalTo: orangeView.topAnchor, constant: -8)
])