NSTimer秒表具有特定控制

时间:2012-06-20 01:40:12

标签: objective-c ios nstimer stopwatch

我有一个标签00:00.0和按钮。当我按下按钮时,无论我点击多少次,计时器都会计算标签。当我点击标签时,计时器应该停止,并且应该在第二次点击同一标签时重置。

我尝试了一切,但我无法达到结果:)任何人都请帮助我。

@interface MainViewController : UIViewController <FlipsideViewControllerDelegate> {
    IBOutlet UILabel *stopWatchLabel;
    NSTimer *stopWatchTimer; // Store the timer that fires after a certain time
    NSDate *startDate; // Stores the date of the click on the start button
}

@property (nonatomic, retain) IBOutlet UILabel *stopWatchLabel;
    - (IBAction)onStartPressed:(id)sender;
    - (IBAction)onStopPressed:(id)sender;
    - (void)updateTimer;

2 个答案:

答案 0 :(得分:1)

-(IBAction)onStartpressed:(id)sender{
     NSTimer * timer = [[NSTimer alloc] initWithFireDate:[NSDate date] interval:1.0 target:self selector:@selector(methodthatUpdateslabel) userInfo:nil repeats:YES];
     [[NSRunLoop mainRunLoop]addTimer:timer forMode:NSDefaultRunLoopMode];

}    

-(IBAction)onStopPressed:(id)sender{
[timer invalidate];
}

这应该是希望它有所帮助。

答案 1 :(得分:1)

在我的活动项目中引用一些代码。

    -(void)start{
        [self setup];
        if(_timer == nil){
            _timer = [NSTimer scheduledTimerWithTimeInterval:kDefaultFireInterval target:self selector:@selector(updateLabel:) userInfo:nil repeats:YES];
            _counting = YES;
        }
    }


    -(void)pause{
        [_timer invalidate];
        _timer = nil;
        _counting = NO;
    }

这是实施秒表的基本概念,如果你想使用UILabel作为秒表, MZTimerLabel是一个完美的双线解决方案。看一看。

干杯。