美文网首页ios开发ios-动画/特效
利用animationDidStop处理动画结束需要注意的

利用animationDidStop处理动画结束需要注意的

作者: 码农的思念 | 来源:发表于2016-11-28 15:36 被阅读1395次

    使用CABasicAnimation时,利用animationDidStop区分哪个动画结束需要注意到的地方
    如下:
    CABasicAnimation*rightAni = [CABasicAnimationanimationWithKeyPath:@"strokeEnd"];
    rightAni.fromValue=@0;
    rightAni.toValue=@1;
    rightAni.duration=1.5;
    rightAni.delegate=self;
    [_rightFlagLayer addAnimation:rightAniforKey:DrawingRightFlag];

    按照上面这样写,动画的removedOnCompletion属性默认为YES,运行一次动画就会销毁。结果就是动画结束的代理回调中使用
    [_rightFlagLayer animationForKey:DrawingRightFlag]为null。。无法区分是哪种动画
    因此一定要加rightAni.removedOnCompletion=NO这句话
    完成后的代码如下:
    

    CABasicAnimation*rightAni = [CABasicAnimationanimationWithKeyPath:@"strokeEnd"];
    rightAni.fromValue=@0;
    rightAni.toValue=@1;
    rightAni.duration=1.5;
    rightAni.delegate=self;
    rightAni.removedOnCompletion=NO;
    [_rightFlagLayer addAnimation:rightAniforKey:DrawingRightFlag];

    -(void)animationDidStop:(CAAnimation*)anim finished:(BOOL)flag
    {
    if([_rightFlagLayer animationForKey:DrawingRightFlag] == anim)
    {
    //此处执行你想要做的事情
    }
    }

    完结!

    相关文章

      网友评论

        本文标题:利用animationDidStop处理动画结束需要注意的

        本文链接:https://www.haomeiwen.com/subject/zpyopttx.html