2014-09-05 277 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]; 
} 

試試這個:)