我必须逐个滚动图像。以下是我正在使用的代码
_imageView是UIImageView,imagesArray是带有对象数组的NSArray。
_imageView.animationImages=imagesArray;
_imageView.animationDuration=10;
[_imageView startAnimating];
CABasicAnimation *scrollText;
scrollText=[CABasicAnimation animationWithKeyPath:@"position.x"];
scrollText.duration = 10.0;
scrollText.speed= 3;
scrollText.repeatCount = 0;
scrollText.autoreverses = NO;
scrollText.fromValue = [NSNumber numberWithFloat:500];
scrollText.toValue = [NSNumber numberWithFloat:-200.0];
[[_imageView layer] addAnimation:scrollText forKey:@"scrollTextKey"];
我可以看到图像是滚动的,它正在逐一变化。 但这些图像无论如何都在变化。我想在离开框架/屏幕时逐个更改图像。任何人都可以提出一些想法吗?
答案 0 :(得分:1)
我不太确定你在问什么。我想你是说你要创建一个动画,其中一系列图像从屏幕底部开始,然后动画到顶部,然后离开屏幕。
要做到这一点,您可能想要创建一个动画,将动画从底部的屏幕外动画到顶部的屏幕外,然后使用不同的图像多次循环该动画。这样的事情。
定义实例变量imageNumber。将其设置为零并调用animateImage(下方)以启动动画。
代码可能如下所示:
-(void) animateImage;
{
_imageView.image = [imagesArray objectAtIndex: imageNumber];
CGPoint imageCenter = _imageView.center;
imageCenter.y = 500;
_imageView.center = imageCenter;
[UIView animateWithDuration: 10
delay: 0.0
options: UIViewAnimationOptionCurveLinear
animations:
^{
CGPoint newImageCenter = _imageView.center;
newImageCenter.y = -200;
_imageView.center = imageCenter;
completion:
^{
imageNumber++;
if (imageNumber < [imagesArray count])
[self animateImage];
}
];
}