ios 关于animationDidStop动画完成后执行哪个动画的问题

CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
    animation.fromValue = @(1.0);
    animation.toValue = @(1.5);
    animation.duration = 0.3f;
    animation.removedOnCompletion = NO;
    animation.fillMode = kCAFillModeForwards;
    animation.delegate = self;
    [_view1.layer addAnimation:animation forKey:@"animationPosition1"];
    
    
        -(void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag{
    NSLog(@"dfdfdfdf:%@",[_view1.layer valueForKey:@"animationPosition1"]); // 为什么这句是null
    if ([_view1.layer valueForKey:@"animationPosition1"] == anim) {
        NSLog(@"anim:%@",anim);
    }
    
}

我就想达到某一个动画结束做某件事 但是 NSLog(@"dfdfdfdf:%@",[_view1.layer valueForKey:@"animationPosition1"]);始终为空 求解答

阅读 7.1k
2 个回答
新手上路,请多包涵
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
    animation.fromValue = @(1.0);
    animation.toValue = @(1.5);
    animation.duration = 0.3f;
    animation.removedOnCompletion = NO;
    animation.fillMode = kCAFillModeForwards;
    animation.delegate = self;
    [animation setValue:@"fi" forKey:@"presentKey"];
    [_view1.layer addAnimation:animation forKey:@"animationPosition1"];
    
    
        -(void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag{

    if ([anim valueForKey:@"presentKey"]) {
    //todo
    }
    
}

clipboard.png
或者用字符串判断 [[_view1.layer animationKeys].firstObject isEqualToString:@"animationPosition1"];

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题