stopwatch - 秒表循环

  显示原文与译文双语对照的内容
0 0

我正在使用 Xcode 4作为单个视图应用程序制作 stopWatching 。 不过我有个问题。 当毫秒计数时,它们就会进入 infinately 。 我希望它们到达 9,然后在 0处再次开始。 我还希望秒到达 59,然后返回到 0. 这是我在 viewcontroller.m file: 中的代码


- (IBAction)start{

 myTicker = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(showActivity) userInfo:nil repeats:YES]; 


 myTicker2 = [NSTimer scheduledTimerWithTimeInterval:.1 target:self selector:@selector(showActivity1) userInfo:nil repeats:YES];

 myTicker3 = [NSTimer scheduledTimerWithTimeInterval:60 target:self selector:@selector(showActivity2) userInfo:nil repeats:YES];


}
- (IBAction)stop{

 [myTicker invalidate];
 [myTicker2 invalidate];
 [myTicker3 invalidate];
}
- (IBAction)reset{

 time.text = @"00";
 time1.text = @"00";
 time2.text = @"00";
}


- (void)showActivity{

 int currentTime = [time.text intValue];
 int newTime = currentTime + 1;
 time.text = [NSString stringWithFormat:@"%d", newTime];

 }



- (void)showActivity1{


 int currentTime1 = [time1.text intValue];
 int newTime1 = currentTime1 + 1;
 time1.text = [NSString stringWithFormat:@"%d", newTime1];


}


- (void)showActivity2{


 int currentTime2 = [time2.text intValue];
 int newTime2 = currentTime2 = 1;
 time2.text = [NSString stringWithFormat:@"%d", newTime2];



}

这是我在. h 文件里的代码。


 IBOutlet UILabel *time;
 IBOutlet UILabel *time1;
 IBOutlet UILabel *time2;

 NSTimer *myTicker;
 NSTimer *myTicker2;
 NSTimer *myTicker3;
}

- (IBAction)start;
- (IBAction)stop;
- (IBAction)reset;


- (void)showActivity;
- (void)showActivity1;
- (void)showActivity2;

@end

关于如何做到这一点的任何答案都是非常重要的。 谢谢。

时间: 原作者:

0 0

在你的情况下我会使用只有 1计时器( 一次计数毫秒) 和 4 int vars ( 小时。分钟。秒和毫秒) 。 然后在计时器上打勾


if (milliseconds> 999)
{
 seconds++;
 milliseconds = 0;
}
if (seconds> 59)
{
 minutes++;
 seconds = 0;
}
if (minutes> 59)
{
 hours++;
 minutes = 0;
}

这样做,你就有一个定时器来管理你所有的变量。 这段代码是即时编写的,所以可能有拼写错误。

原作者:
...