1

iOS アプリでアニメーションを表示しようとしていますが、いくつかの理由により、次のようなデフォルトの iOS UIAnimation を使用したくありません。

ImageView.animationImages = arrayOfImages;

[ImageView startAnimating];

AnimationTick メソッドを 0.015 秒ごとに呼び出すタイマーをスケジュールしました。そのメソッドの実装は次のとおりです。

-(void)animationTick{
if ( self.frameNumber > 0 && self.frameNumber < 19 )
{
    self.c2cAnimation = [[UIImageView alloc] initWithFrame:CGRectMake(20, 20, 700, 1000)];
    self.c2cAnimation.image = [UIImage imageNamed:[NSString stringWithFormat:@"L6_anim_%d.png",self.frameNumber]];
    if ( self.frameNumber == 1 )
    {
        [self.OverPlayPaper addSubview:self.c2cAnimation];
    }
    self.frameNumber = self.frameNumber + 1 ;
}}

しかし、アプリをビルドして実行すると、画面に何も表示されません...

私は何か間違っていますか?助言がありますか ?

4

1 に答える 1

0

まず、オブジェクトを複数回割り当てないでください。

self.c2cAnimation = [[UIImageView alloc] initWithFrame:CGRectMake(20, 20, 700, 1000)];タイマーを開始する直前に書き込む必要があります。

次に、 initialize があることを確認しますself.frameNumber = 1;。これを初期化していない場合は、self.frameNumber = 1;タイマーを開始する直前に書き込みます。

第三に、タイマーが適切に開始されていることを確認するか、これを使用してください....

[NSTimer scheduledTimerWithTimeInterval:0.015 target:self selector:@selector(animationTick) userInfo:nil repeats:YES];

目的の出力が得られます

まとめ::

//START TIMER:

    self.c2cAnimation = [[UIImageView alloc] initWithFrame:CGRectMake(20, 20, 700, 1000)];
    self.frameNumber = 1;
    [NSTimer scheduledTimerWithTimeInterval:0.015 target:self selector:@selector(animationTick) userInfo:nil repeats:YES];

それから書く

//FUNCTION FOR ANIMATION:

-(void)animationTick
{
     if ( self.frameNumber > 0 && self.frameNumber < 19 )
     {
          self.c2cAnimation.image = [UIImage imageNamed:[NSString stringWithFormat:@"L6_anim_%d.png",self.frameNumber]];
          if ( self.frameNumber == 1 )
          {
               [self.OverPlayPaper addSubview:self.c2cAnimation];
          }
          self.frameNumber = self.frameNumber + 1 ;
     }
}
于 2013-03-15T10:37:29.567 に答える