0

我开始研究示例应用程序,其中有一些在 UIView 上动画的对象(图像)。我想要一个背景图像,它也应该与这些对象一起动画。两个动画应该同时发生。背景图像占据了所有的屏幕空间,在此之上,其他图像应该是动画的。有人可以指导我实现这一目标。

我尝试了以下链接中提到的以下内容。

  for (int i = 0; i < IMAGE_COUNT; i++)
        [_imageArray addObject:[UIImage imageNamed:[NSString stringWithFormat:@"D%d.png", i]]];


    _animatedImages = [[UIImageView alloc] 
                      initWithFrame:CGRectMake(
                                               (SCREEN_WIDTH / 2) - (IMAGE_WIDTH / 2), 
                                               (SCREEN_HEIGHT / 2) - (IMAGE_HEIGHT / 2) + STATUS_BAR_HEIGHT,
                                               IMAGE_WIDTH, IMAGE_HEIGHT)];

    _animatedImages.animationImages = [NSArray arrayWithArray:_imageArray];

    _animatedImages.animationDuration = 1.0;

    _animatedImages.animationRepeatCount = -1;

iPhone 游戏背景是视频还是动画图像?

但是两个动画是独立发生的。我想为背景图像顶部的对象设置动画,这些对象也需要动画。如果这不可能,我可以使用图层或其他对象来实现这一点。请建议。

4

1 回答 1

0

似乎 `UIImageView' 无法控制动画开始的时间。有这样一个 API,但它位于较低级别的 CoreAnimation 框架中(UIImageView 必须在其实现中使用......)

你可以重新实现你自己的 UIImageView 动画。

然后,要设置具有相对时间的不同动画,请参阅“如何将不同层的核心动画一个接一个地链接?” 以及如何将两个 CABasicAnimation 动画分组并同时启动它们?.

由于您不需要所有图层动画之间的偏移量,但希望它们同时运行,您应该创建一个CAAnimationGroup,并将它们全部放在相同的beginTime.

CAMediaTiming协议CAAnimation由_

于 2013-02-10T17:39:51.957 回答