0

我必须一张一张地滚动图像。以下是我正在使用的代码

_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"];

我可以看到图像正在滚动,并且正在一一变化。但是这些图像都在不断变化。当图像离开框架/屏幕时,我想一张一张地更改图像。有人可以提出一些想法吗?

4

1 回答 1

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];
    }
  ];
}
于 2012-05-13T19:08:03.970 回答