在iOS9.0中对锚定样式约束进行动画处理

Liu*_*x31 4 ios autolayout swift

使用锚样式NSLayoutConstraints(如在此答案:Swift |通过编程添加约束)如何为子视图设置动画?

对于那些懒惰的人,这里的代码是:

override func viewDidLoad() {
    super.viewDidLoad()

    let newView = UIView()
    newView.backgroundColor = UIColor.redColor()
    newView.translatesAutoresizingMaskIntoConstraints = false
    view.addSubview(newView)

    let horizontalConstraint = newView.centerXAnchor.constraintEqualToAnchor(view.centerXAnchor)
    let vertivalConstraint = newView.centerYAnchor.constraintEqualToAnchor(view.centerYAnchor)
    let widthConstraint = newView.widthAnchor.constraintEqualToAnchor(nil, constant: 100)
    let heightConstraint = newView.heightAnchor.constraintEqualToAnchor(nil, constant: 100)
    NSLayoutConstraint.activateConstraints([horizontalConstraint, vertivalConstraint, widthConstraint, heightConstraint])
}
Run Code Online (Sandbox Code Playgroud)

具体来说,如果我想newView向右滑动,该怎么做?谢谢。

Chr*_*wik 5

您将设置约束,然后在动画块中,使用layoutIfNeeded更新:

self.horizontalConstraint.constant += 10 // move right 10 px.
UIView.animateWithDuration(0.5) {
    self.view.layoutIfNeeded()
}
Run Code Online (Sandbox Code Playgroud)