2013-02-08 91 views
1

當重複按鈕第一次被擊中時,它應該運行無限次,當它第二次被擊中時,它不應該重複音頻,而應該停止循環。 。下面是它第一次很好的代碼,但是當它再次被按下時,它不會停止循環。音頻的循環次數

BOOL isFirstTime; 

@interface English : UIViewController <UITextViewDelegate, ADBannerViewDelegate, UIScrollViewDelegate, 

-(void) RepeatAction:(id)sender{ 

if(isFirstTime == YES){ 

    player.numberOfLoops = -1; 


} else { 

    player.numberOfLoops = 0; 
} 

} 

- (void)playAction:(id)sender 
{ 
    if([player isPlaying]) 
    { 
     [sender setImage:[UIImage imageNamed:@"1play.png"] forState:UIControlStateSelected]; 
     [player pause]; 

    }else{ 
     [sender setImage:[UIImage imageNamed:@"audiopause.png"] forState:UIControlStateNormal]; 
     [player play]; 
     slidertimer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(updateProgressBar:) userInfo:nil repeats:YES]; 

     [[NSRunLoop mainRunLoop] addTimer:slidertimer forMode:NSRunLoopCommonModes]; 
     timer = slidertimer; 


    }} 

感謝您的幫助。

+0

告訴我們你在哪裏設置布爾值,然後運行循環。 – Max 2013-02-08 14:27:48

+0

在h文件中定義Bool,並在m文件中設置viewdidload isFirstTime = YES; – user1452248 2013-02-08 14:30:37

+1

我沒有看到您將isFirstTime設置爲NO的任何點。所以當然你的循環將繼續運行。 – Max 2013-02-08 14:35:02

回答

1
-(void) RepeatAction:(id)sender{ 
    if(isFirstTime){ // even here you need not to compare with == YES 
     player.numberOfLoops = -1; 
     isFirstTime = NO; 
    } else { 
     player.numberOfLoops = 0; 
     isFirstTime = YES; 
    } 
} 
+0

非常感謝。有用。 – user1452248 2013-02-08 14:41:09