2014-09-05 220 views
1

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

-(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()方法。

第一次当我点击按钮它工作正常,但之后,每当我点击按钮,幻灯片速度增加。

任何人都可以告诉我为什么会发生这种情况。

Thanx。

+0

Oviouslly的增加,怎么每次ü请您点击操作该方法。所以当你点击那个时候,你必须检查它的运行情况,然后停止动画并重新开始。 – 2014-09-05 05:57:02

+0

首先你无效/停止该动画并重新开始。 – 2014-09-05 05:58:03

回答

1

首先采取全球性计时器。

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]; 
} 

试试这个:)