我有一组面向一侧的图像(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];
一旦开始,动画就不会被翻转!!
任何人都知道为什么?
答案 0 :(得分:2)
我无法相信没有人知道为什么,但我找到了解决方法。是在我开始动画之前添加以下内容:
manRunAnimationsf.transform = CGAffineTransformMake(-1,0,0,1,0,0);
我甚至不需要在循环中进行CGImage翻转。
但手动图像翻转应该使用imageWithCGImage方法,我真的想知道为什么!!你们让我失望了。 :P