0

ラベル 00:00.0 とボタンがあります。ボタンを押すと、タイマーがラベルをカウントするようになるはずです。何回クリックしてもかまいません。ラベルをタップするとタイマーが停止し、同じラベルを2回タップするとリセットされます。

私はすべてを試しましたが、結果に到達できません:)誰か助けてください。

@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;
4

2 に答える 2

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];
}

これでうまくいくはずです。

于 2012-06-20T12:22:36.980 に答える
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は完璧な 2 行のソリューションです。見てください。

乾杯。

于 2013-10-16T14:20:12.147 に答える