簡體   English   中英

第一次運行計時器,第二次恢復計時器

[英]Run Timer for first time and resume timer for second time

在m文件中聲明的變量。

BOOL isFirstTime;

我希望如果第一次按下播放按鈕,則應切換到暫停按鈕並檢查函數isFirstTime然后應啟動計時器並執行displayviewsAction方法,如果繼續播放暫停按鈕,則應再次檢查該函數是isFirstTime或第二次,如果點擊是第二次,則應恢復計時器。

-(void)playpauseAction:(id)sender {
if ([audioPlayer isPlaying]){         
   [sender setImage:[UIImage imageNamed:@"Play Icon.png"] forState:UIControlStateSelected];
   [audioPlayer pause];
   [self pauseTimer];
} else {
  [sender setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateNormal];
  [audioPlayer play];
  [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(AfterOneSecondsFuction) userInfo:nil repeats:YES];
        }         
}
-(void)pauseTimer{
pauseStart = [[NSDate dateWithTimeIntervalSinceNow:0] retain];
previousFireDate = [[timer fireDate] retain];
[timer setFireDate:[NSDate distantFuture]];
}
 -(void)resumeTimer{
float pauseTime = -1*[pauseStart timeIntervalSinceNow];
[timer setFireDate:[previousFireDate initWithTimeInterval:pauseTime sinceDate:previousFireDate]];
[pauseStart release];
[previousFireDate release];    
}
-(void)AfterOneSecondsFuction
{
if(!isFirstTime)
{
 isFirstTime=YES;
 return;
 self.timer = [NSTimer scheduledTimerWithTimeInterval:11.0
                                                  target:self
                                                selector:@selector(displayviewsAction:)
                                                userInfo:nil
                                                repeats:NO];

} else if (!isFirstTime){
  isFirstTime=NO;
  return;
  [self resumeTimer]; 

     }
}    

- (void)displayviewsAction:(id)sender
{  
  First *firstController = [[First alloc] init];
firstController.view.frame = CGRectMake(0, 0, 320, 480);
CATransition *transitionAnimation = [CATransition animation];   
[transitionAnimation setDuration:1];
[transitionAnimation setType:kCATransitionFade];
[transitionAnimation setTimingFunction:[CAMediaTimingFunction     functionWithName:kCAMediaTimingFunctionEaseIn]];
[self.view.layer addAnimation:transitionAnimation forKey:kCATransitionFade];
[self.view addSubview:firstController.view];
[self.view addSubview:toolbar];
[firstController release];   
}

-(void)Second 
{
 Second *secondController = [[Second alloc] init];
secondController.view.frame = CGRectMake(0, 0, 320, 480);
CATransition *transitionAnimation = [CATransition animation];
[transitionAnimation setDuration:1];
[transitionAnimation setType:kCATransitionReveal];
[transitionAnimation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]];
[self.view.layer addAnimation:transitionAnimation forKey:kCATransitionReveal];
[self.view addSubview:secondController.view]; 
[self.view addSubview:toolbar];
[secondController release];
self.timer = [NSTimer scheduledTimerWithTimeInterval:27 target:self selector:@selector(Third) userInfo:nil repeats:NO];
 }

看起來像是第一次按下播放按鈕時,只是切換到暫停按鈕,而不檢查功能是否為isFirstTime ,並且不啟動計時器並執行displayviewsaction。

如果有人能說出為什么它沒有發生以及我在做什么錯。

感謝幫助。

BOOL isFirstTime

//Somewhere where the object is set up, isFirstTime should be set to YES


- (void)playpauseAction:(id)sender {

//When the button is pressed

if(isFirstTime) {

//Load the sound file
//Start playing the sound
//Start view controller timers
//Change the button image to paused
isFirstTime = FALSE;

}

else {

//The button has already been pressed

if ([audioPlayer isPlaying]) {

//If the sound is playing

//Stop playing the sound
//Stop view controller timers
//Change the button image to playing

}

else {

//Resume playing the sound
//Start view controller timers
//Change the button image to paused

}

}


}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM