这是我的图像幻灯片放映代码:

-(void)setImage
{
     imageView.image = [UIImage imageNamed:[arrImages objectAtIndex:0]];
     [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(changeImage) userInfo:nil repeats:YES];
}

-(void)changeImage
{

   imageId = imageId + 1;

   int id = imageId % [arrImages count];
   CATransition * trs = [CATransition animation];
   trs.duration = 0.5;
   [trs setType:kCATransitionPush];
   imageView.image = [UIImage imageNamed:[arrImages objectAtIndex:id]];
   [imageView.layer addAnimation:trs forKey:kCATransition];
}

我在单击按钮时调用setImage()方法。

第一次单击按钮时效果很好,但是此后每次单击按钮时,幻灯片放映的速度都会提高。

谁能告诉我为什么会这样。

谢谢

最佳答案

首先在全局使用一个计时器。

 NSTimer *timer;

 -(void)setImage
 {
    imageView.image = [UIImage imageNamed:[arrImages objectAtIndex:0]];
    if (timer)
    {
      [timer invalidate];
      timer = nil;
    }

    timer = [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(changeImage) userInfo:nil repeats:YES];
 }

试试这个:)

关于ios - iOS:图片幻灯片放映,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25679338/

10-10 18:26