UIImageView的开始动画不会动画翻转图像

时间:2013-04-02 02:35:56

标签: ios objective-c cocoa-touch animation uiimageview

我有一组面向一侧的图像(Man面向右侧),我正在使用此方法将其翻转,然后将其添加到uiimageview的animationImages中。然而,在添加翻转的图像,然后开始动画后,动画仍然面向右侧。

manRunAnimations = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 64, 64)];
NSArray *manAniRunArray = @[[UIImage imageNamed:@"robot1"],
                            [UIImage imageNamed:@"robot2"],
                            [UIImage imageNamed:@"robot3"],
                            [UIImage imageNamed:@"robot4"],
                            [UIImage imageNamed:@"robot5"],
                            [UIImage imageNamed:@"robot6"],
                            ];


manRunAnimationsf = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 64, 64)];

NSMutableArray *flippedRunAnimationImages = [[NSMutableArray alloc] init];

for( UIImage *image in manAniRunArray)
{
    UIImage * flippedImage = [UIImage imageWithCGImage:image.CGImage scale:image.scale orientation:UIImageOrientationRightMirrored];
    [flippedRunAnimationImages addObject:flippedImage];
}

manRunAnimationsf.animationImages = (NSArray *)flippedRunAnimationImages;

testImgView.image = [manRunAnimationsf.animationImages objectAtIndex:0];
manRunAnimationsf.animationDuration = runAnimationSpeedSlider.value;
[manRunAnimationsf startAnimating];

我甚至用

测试了它
testImgView.image = [manRunAnimationsf.animationImages objectAtIndex:5];

这将在我执行

之前在屏幕上正确显示其中一个翻转图像
[manRunAnimationsf startAnimating];

一旦开始,动画就不会被翻转!!

任何人都知道为什么?

1 个答案:

答案 0 :(得分:2)

我无法相信没有人知道为什么,但我找到了解决方法。是在我开始动画之前添加以下内容:

    manRunAnimationsf.transform = CGAffineTransformMake(-1,0,0,1,0,0);

我甚至不需要在循环中进行CGImage翻转。

但手动图像翻转应该使用imageWithCGImage方法,我真的想知道为什么!!你们让我失望了。 :P