Jic*_*ery 7 uiview ios animatewithduration swift swift2
我曾经习惯于UIView animateWithDuration增加shapeLayer.frame.size.height下面的代码,但无论持续时间如何,都会非常快.我发现的一些帖子推荐使用了我已经完成的一些延迟时间,但它仍然很快动画,忽略了我设置的5秒持续时间.
private let minimalHeight: CGFloat = 50.0
private let shapeLayer = CAShapeLayer()
override func loadView() {
super.loadView()
shapeLayer.frame = CGRect(x: 0.0, y: 0.0, width: view.bounds.width, height: minimalHeight)
shapeLayer.backgroundColor = UIColor(red: 57/255.0, green: 67/255.0, blue: 89/255.0, alpha: 1.0).CGColor
view.layer.addSublayer(shapeLayer)
}
func delay(delay:Double, closure:()->()) {
dispatch_after(
dispatch_time(
DISPATCH_TIME_NOW,
Int64(delay * Double(NSEC_PER_SEC))
),
dispatch_get_main_queue(), closure)
}
override func viewDidAppear(animated: Bool) {
delay(3) {
UIView.animateWithDuration(5.0) {
self.shapeLayer.frame.size.height += 400.0
}
}
Run Code Online (Sandbox Code Playgroud)
如何在5秒内完成动画制作?
也许你应该尝试CABasicAnimation
let fromValue = view2.layer.bounds.height
let toValue = view2.layer.bounds.height + 50
CATransaction.setDisableActions(true) //Not necessary
view2.layer.bounds.size.height = toValue
let positionAnimation = CABasicAnimation(keyPath:"bounds.size.height")
positionAnimation.fromValue = fromValue
positionAnimation.toValue = toValue
positionAnimation.duration = 1
view2.layer.addAnimation(positionAnimation, forKey: "bounds")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1817 次 |
| 最近记录: |