I am new to iOS programming. I am working on words matching game. In this game I need to implement time counter which shows minutes and seconds. I want when my game is started my timer to start with 3 minutes. Now I want to decrease this timer in reverse direction with seconds. my code just work for seconds..here is my code:
secondsLeft--; int seconds = (secondsLeft %3600) % 60; Timerlbl.text = [NSString stringWithFormat:@"%02d",seconds]; if (seconds==0) { UIAlertView *pAlert = [[UIAlertView alloc]initWithTitle:@"Sorry!!" message:@"TimeOver" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:@"Cancel",nil]; [pAlert show]; [pAlert release]; } }
In Viewdidload i call it through timer..
countDown=[NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(TimeOver) userInfo:nil repeats:YES];
pleas any one guide me how can i do it in both minutes and seconds.
You can do it like this(ARC Enabled):-
@interface ViewController() { UILabel *progress; NSTimer *timer; int currMinute; int currSeconds; } @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; progress=[[UILabel alloc] initWithFrame:CGRectMake(80, 15, 100, 50)]; progress.textColor=[UIColor redColor]; [progress setText:@"Time : 3:00"]; progress.backgroundColor=[UIColor clearColor]; [self.view addSubview:progress]; currMinute=3; currSeconds=00; // Do any additional setup after loading the view, typically from a nib. } -(void)start { timer=[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerFired) userInfo:nil repeats:YES]; } -(void)timerFired { if((currMinute>0 || currSeconds>=0) && currMinute>=0) { if(currSeconds==0) { currMinute-=1; currSeconds=59; } else if(currSeconds>0) { currSeconds-=1; } if(currMinute>-1) [progress setText:[NSString stringWithFormat:@"%@%d%@%02d",@"Time : ",currMinute,@":",currSeconds]]; } else { [timer invalidate]; } }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With