iOS8:查看图层动画

时间:2015-08-25 22:23:26

标签: swift ios8 autolayout uianimation

我想将以下基于View的动画转换为Layer为基础。

@IBOutlet weak var constraintTopContainerHeight: NSLayoutConstraint!

override func viewDidLoad() {
    super.viewDidLoad()

    var value:CGFloat

    switch (someTag)
    {
    case 1:
        value = CGFloat(self.view.bounds.height / 3)
    case 2:
        value = CGFloat(self.view.bounds.height / 2)
    case 3:
        value = CGFloat(self.view.bounds.height * 0.8)
    default:
        value = 0.0
    }

    UIView.animateWithDuration(1.5, delay: 0.0,
        usingSpringWithDamping: 0.3, initialSpringVelocity: 0.0,
        options: nil, animations: {

        self.constraintTopContainerHeight.constant = value
        self.view.layoutIfNeeded()

        }, completion: nil)
     }
}

如何使Constraint使用基于Layer的动画而不是当前基于View的动画。代码请。

1 个答案:

答案 0 :(得分:1)

首先,您应该在UIView动画之外设置约束。

此外,您无法使用Core Animation为约束设置动画。

Apple的自动布局指南解释道。

  

https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/Introduction/Introduction.html