Название может быть не таким ясным, но я хочу, чтобы UIImageView отображал серию изображений (вроде как гифку), и я делаю это, устанавливая animationImages
на массив изображений и затем вызывая [imageView startAnimating];
. Это прекрасно работает. У меня также есть код, который перемещает UIImageView с помощью CABasicAnimation, и этот код анимации также отлично работает. Однако, когда я пытаюсь как анимировать изображения UIImageView, так и перемещать UIImageView, изображения UIImageView перестают анимироваться. Есть ли обходной путь?
Вот мой код для анимации содержимого UIImageView:
self.playerSprite = [[UIImageView alloc] initWithImage:[self.player.animationImages objectAtIndex:0]];
[self.playerSprite setFrame:CGRectMake(self.center.x, self.center.y, self.tileSet.constants.TILE_WIDTH, self.tileSet.constants.TILE_HEIGHT)];
self.playerSprite.animationImages = self.player.animationImages;
self.playerSprite.animationDuration = self.tileSet.constants.animationDuration;
self.playerSprite.animationRepeatCount = 0; //Makes it repeat indefinitely
А вот мой код для анимации UIImageView с помощью CABasicAnimation:
float playerSpriteX = self.playerSprite.center.x;
float playerSpriteY = self.playerSprite.center.y;
CABasicAnimation *moveAnimation = [CABasicAnimation animation];
moveAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(playerSpriteX + TILE_WIDTH, playerSpriteY)];
[moveAnimation setDelegate:self];
[moveAnimation setFillMode:kCAFillModeForwards];
[moveAnimation setRemovedOnCompletion:NO];
[moveAnimation setDuration:MOVE_ANIMATION_DURATION];
[self.playerSprite.layer addAnimation:moveAnimation forKey:@"position"];
Таким образом, эффект gif не работает во время анимации позиции UIImageView. Мой вопрос: как сделать так, чтобы UIImageView циклически перебирал массив изображений, пока его позиция анимируется?