我有一个UIImageView,我试图通过翻转其他UIImages来创建一组UIImages的动画。这是我的代码:
turtle = [[UIImageView alloc] initWithFrame:CGRectMake(self.view.frame.size.width-200,
self.view.frame.size.height - sand.frame.size.height - turtle.frame.size.height - 10 - heightOfKeyboard,
100,100)];
[flippedTurtleArray addObject:[UIImage imageWithCGImage:[UIImage imageNamed:@"Turtle1.png"].CGImage scale:1 orientation:UIImageOrientationDownMirrored]];
[flippedTurtleArray addObject:[UIImage imageWithCGImage:[UIImage imageNamed:@"Turtle2.png"].CGImage scale:1 orientation:UIImageOrientationDownMirrored]];
[flippedTurtleArray addObject:[UIImage imageWithCGImage:[UIImage imageNamed:@"Turtle3.png"].CGImage scale:1 orientation:UIImageOrientationDownMirrored]];
[flippedTurtleArray addObject:[UIImage imageWithCGImage:[UIImage imageNamed:@"Turtle2.png"].CGImage scale:1 orientation:UIImageOrientationDownMirrored]];
[self.view addSubview: turtle];
问题是,当我尝试从翻转图像阵列中制作动画时,它会显示原件,而不是翻转的原件(即,当我这样做时):
turtle.animationImages = flippedTurtleArray;
turtle.animationDuration = 0.8f;
turtle.animationRepeatCount = 0;
[turtle startAnimating];
显示原始的非翻转图像。
现在,如果我这样做:
turtle.image = [flippedTurtleArray objectAtIndex:1];
显示翻转的图像。我想也许你不能用CGImage做动画,但是找不到其他人有同样的问题。有什么想法吗?
谢谢,
萨姆
答案 0 :(得分:0)
我会查看CGLayer属性,特别是图层的transform属性。
Transform属性是可动画的,允许您将任意变换应用于原始图像,而无需管理中间翻转的Turtle Array。
应用于图层内容的变换。动画。
@property CATransform3D转换 讨论 默认情况下,此属性设置为标识转换。您应用于图层的任何变换都是相对于图层的锚点发生的。
状况 适用于iOS 2.0及更高版本。 相关示例代码 oalTouch 宣告进入 CALayer.h
如果您有其他理由想要数组,那么您可能希望将翻转的图像渲染为单独的图像,并将其传递到数组中。
同样,如果你可以使用iOS 7作为目标,看一下SpriteKit,它可以使整个任务变得更加简单。