0

202 枚の画像を含む PNG 画像内で移動するaCABasicAnimation.fromValueaがあり、.toValueそれらを 1 つずつ表示します

また、私CALayerはimage.pngを保持していました

すべての画像を順番に渡すという問題私はフレームごとに画像を表示したいNSArray

ここに私のコードがあります:

CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"sampleIndex"];
anim.fromValue = [NSNumber numberWithInt:1];
anim.toValue = [NSNumber numberWithInt:203];
anim.duration = 1.75f;
anim.repeatCount = HUGE_VALF;
anim.autoreverses = YES; 
[myImage addAnimation:anim forKey:nil];

フレームの配列は次のとおりです。

frames =   (753, 377, 798, 422)  ,
  (706, 377, 751, 422)  ,
  (659, 377, 704, 422)  ,
  (612, 377, 657, 422)  ,
  (565, 377, 610, 422)  ,
  (518, 377, 563, 422)  ,
  (518, 424, 563, 468)  ,
  (471, 424, 516, 468)  ,
  (424, 424, 469, 468)  ,
  (471, 377, 516, 422)  ,
  (424, 377, 469, 422)  ,
  (377, 377, 422, 422)  ,
  (330, 377, 375, 422)  ,

等々 ....

何か案は ??

4

1 に答える 1

1

フレーム配列と同様に、必要なすべての画像(フレーム)をUIImageViewに追加できます。次に例を示します。

NSArray *images = [NSArray arrayWithObjects: 
              [UIImage imageNamed:@"frame753.png"],
              [UIImage imageNamed:@"frame377.png"],
              [UIImage imageNamed:@"frame798.png"], 

              nil];
yourImageView.animationImages = images; 
yourImageView.animationDuration = 1.75; 
yourImageView.animationRepeatCount = 0;
[yourImageViewstartAnimating]; 

お役に立てれば。

于 2012-09-11T12:33:57.933 に答える