0

画像を1つずつスクロールする必要があります。以下は私が使用しているコードです

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

画像がスクロールしていて、1 つずつ変化していることがわかります。しかし、これらのイメージは関係なく変化しています。フレーム/スクリーンを離れるときに画像を1つずつ変更したい。誰でもいくつかのアイデアを提案できますか?

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 に答える