CABasicAnimation chaining not working

Lawrence413

I am having difficulties chaining multiple CABasicAnimations. I just want to make a button scale to 1.5 times it's size, then to 0.5 and fade away (while scaling down).

The problem is that only the scaling up works then the button goes back to the original state.

I would have used CGAffineTransformMakeScale but it creates a bug in iOS 7. On iOS 8 & 9 it works fine

I tried using a CAAnimationGroup but same result.

Here's the code:

    let scaleUp = CABasicAnimation(keyPath: "transform.scale")
    scaleUp.fromValue = 1
    scaleUp.toValue = 1.5
    scaleUp.duration = 0.2
    scaleUp.beginTime = 0
    scaleUp.removedOnCompletion = true
    self.myButton.layer.addAnimation(scaleUp, forKey: "up")

    let scaleDown = CABasicAnimation(keyPath: "transform.scale")
    scaleDown.fromValue = 1
    scaleDown.toValue = 0.5
    scaleDown.duration = 0.2
    scaleDown.beginTime = scaleUp.beginTime + scaleDown.duration
    scaleDown.removedOnCompletion = true
    self.myButton.layer.addAnimation(scaleDown, forKey: "down")

    let fade = CABasicAnimation(keyPath: "opacity")
    fade.fromValue = 1
    fade.toValue = 0
    fade.duration = 0.2
    fade.beginTime = scaleUp.beginTime + scaleDown.duration
    fade.removedOnCompletion = false
    self.myButton.layer.addAnimation(fade, forKey: "fade")
holex

that works for me quite well, feel free to play with the duration times, or other animation properties.

I tried to use your instructions for the animation, but it does not mean I have set all properties correctly for your expectations.


Swift (2.x)

func addGrowShrinkAndFadeOutAnimationToView(viewToAnimate: UIView) {

    let easeInOutTiming = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)

    let viewScaleXAnimation = CAKeyframeAnimation(keyPath: "transform.scale.x")
    viewScaleXAnimation.duration = 0.4
    viewScaleXAnimation.values = [1.0 as Float, 1.5 as Float, 0.5 as Float]
    viewScaleXAnimation.keyTimes = [0.0 as Float, 0.5 as Float, 1.0 as Float]
    viewScaleXAnimation.timingFunctions = [easeInOutTiming, easeInOutTiming]
    viewToAnimate.layer.addAnimation(viewScaleXAnimation, forKey:"Grow, Shrink and Fade out_ScaleX")

    let viewScaleYAnimation = CAKeyframeAnimation(keyPath: "transform.scale.y")
    viewScaleYAnimation.duration = 0.4
    viewScaleYAnimation.values = [1.0 as Float, 1.5 as Float, 0.5 as Float]
    viewScaleYAnimation.keyTimes = [0.0 as Float, 0.5 as Float, 1.0 as Float]
    viewScaleYAnimation.timingFunctions = [easeInOutTiming, easeInOutTiming]
    viewToAnimate.layer.addAnimation(viewScaleYAnimation, forKey:"Grow, Shrink and Fade out_ScaleY")

    let viewOpacityAnimation = CAKeyframeAnimation(keyPath: "opacity")
    viewOpacityAnimation.duration = 0.4
    viewOpacityAnimation.values = [1.0 as Float, 1.0 as Float, 0.0 as Float]
    viewOpacityAnimation.keyTimes = [0.0 as Float, 0.5 as Float, 1.0 as Float]
    viewOpacityAnimation.timingFunctions = [easeInOutTiming, easeInOutTiming]
    viewToAnimate.layer.addAnimation(viewOpacityAnimation, forKey:"Grow, Shrink and Fade out_Opacity")

}

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

CABasicAnimation not working with UIImageView

From Dev

CABasicAnimation with keypath "bounds" not working

From Dev

CABasicAnimation not working all the time

From Dev

CABasicAnimation CGRect enlarging not working

From Dev

CABasicAnimation not working with UIImageView

From Dev

CABasicAnimation CGRect enlarging not working

From Dev

CABasicAnimation not working all the time

From Dev

CABasicAnimation not working in iOS7

From Dev

CABasicAnimation working on one image, but not another

From Dev

.on("hover", ...) chaining not working

From Dev

ContinueWith chaining not working as expected

From Dev

Chaining not working on jQuery Plugin

From Dev

Optional Chaining Not Working As Expected

From Dev

chaining ifelse with mutate not working

From Dev

CABasicAnimation not working on device (iPhone 5s)

From Dev

Method chaining using javascript not working?

From Dev

Method chaining using javascript not working?

From Dev

Javascript method chaining working but convoluted

From Dev

$this jQuery chaining with .on click function is not working

From Dev

Generic type inference not working with method chaining?

From Dev

jquery chaining not working in my html with each function

From Dev

Optional chaining not working for optional protocol requirements

From Dev

Operational chaining not working properly in NodeJS TS

From Dev

Ownership Chaining not working between two schemas in the same database

From Dev

Django Haystack Xapian: Default AND Chaining, among others, not working

From Dev

CABasicAnimation on strokeEnd

From Dev

UIPercentDrivenInteractiveTransition With CABasicAnimation

From Dev

CABasicAnimation + UIBezierPath

From Dev

CABasicAnimation + UIBezierPath

Related Related

HotTag

Archive