1

我并排有2个imageView,如图:在此处输入图像描述

我需要通过重复动画作为滑动视图来更改这些图像。我通过使用 NSTimer 来做到这一点。

以下是我用于创建动画的代码:

CATransition *animation = [CATransition animation];
[animation setDuration:1];
[animation setType:kCATransitionPush];
[animation setSubtype:kCATransitionFromRight];
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]] ;

[[imgVwTry layer] addAnimation:animation forKey:@"@asdf"];

但是,Left ImageView 中的动画是从图像视图的边界开始的。如下图所示:

在此处输入图像描述

让我更清楚地解释一下:

正在发生的动画与 Right ImageView 重叠。但是,我希望动画只发生在为 LeftImageView 指定的区域中。像这样的东西: 在此处输入图像描述

我应该在动画代码中进行哪些更改,以便我可以删除重叠。或者有没有其他方法可以为图像设置动画?

还有一个小问题,如果我使用 UIImageView 的 startAnimation 方法,我可以将动画更改为幻灯片动画吗?

4

1 回答 1

1

您应该在包含您正在谈论的图像的超级视图上将 clipsToBounds 设置为 YES。这将阻止子视图显示,直到它在您的框架范围内。

于 2013-02-21T13:16:05.977 回答