Ios 为什么这个动画只工作一次?

Ios 为什么这个动画只工作一次?,ios,objective-c,core-animation,cabasicanimation,Ios,Objective C,Core Animation,Cabasicanimation,我有一个UIView,其中包含一个UIAPTgestureRecognitor,它触发一个名为handleLeftTap的方法 -(void)handleLeftTap { self.player.direction = LEFT; if(!self.isAnimating && self.toTile.isWalkable) { for(UIView *currentView in self.subviews) { C

我有一个UIView,其中包含一个UIAPTgestureRecognitor,它触发一个名为
handleLeftTap
的方法

-(void)handleLeftTap {

    self.player.direction = LEFT;

    if(!self.isAnimating && self.toTile.isWalkable) {
        for(UIView *currentView in self.subviews) {
            CABasicAnimation *moveAnimation = [CABasicAnimation animationWithKeyPath:@"position"];
            [moveAnimation setDuration:MOVE_ANIMATION_DURATION];
            [moveAnimation setDelegate:self];
            [moveAnimation setRemovedOnCompletion:NO];
            [moveAnimation setFillMode:kCAFillModeForwards];
            moveAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(currentView.center.x+TILE_WIDTH, currentView.center.y)];
            [currentView.layer addAnimation:moveAnimation forKey:nil];
        }
        NSLog(@"animated\n");
    }
}

当我第一次点击屏幕时,这个动画效果非常好;每个子视图向右移动
TILE\u WIDTH
像素。但是,如果我再次点击屏幕,动画根本不起作用;没有视图移动。我使用断点逐步浏览了这段代码,并验证了该动画是否已添加到层中。只是没有应用动画之类的东西。是否有办法解决此问题?

不太确定,但您确定第二个动画的位置与第一个动画后的位置不同吗?

第二次是否通过了if语句?@rdelmar-yesp。我在if语句上方放置了一个断点来测试它,它确实通过了if语句。谢谢!我在动画之后记录了视图的位置,结果证明我实际上并没有改变视图的位置,只是将视图设置成它的样子。我通过将
self.view.layer.position=finalPosition
animationDidStop
方法中键入代码来修复代码。