1

我正在尝试在我的 iOS 应用程序中显示动画,但由于某些原因,我不想使用默认的 iOS UIAnimation,例如:

ImageView.animationImages = arrayOfImages;

[ImageView startAnimating];

我安排了一个计时器,它每 0.015 秒调用一次 AnimationTick 方法,这是该方法的实现:

-(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)];在开始计时器之前编写。

其次,确保你有初始化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 回答