私はストップウォッチ機能のために次のコードを用意しています。NSTimerとUIButtonを設定するには
私は2つのUIButtonsを持っています。 1つは始動/停止用で、もう1つはリセット用です。
私はこれらの2つを1つのボタンにまとめたいと思っています。そのボタンはスタートボタンとして機能し、タイマーの実行中は停止ボタンになり、プッシュボタンを押すとタイマーがリセットされます。
これを反映するようにこのコードを変更するにはどうすればよいですか?あなたができる
- (IBAction)startStop:(UIButton *)sender
{
if (self.myTimer)
{
[self.myTimer invalidate];
self.myTimer = nil;
[sender setTitle:@"Start" forState:UIControlStateNormal];
}
else
{
self.myTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(handleTimer:) userInfo:nil repeats:YES];
[sender setTitle:@"Stop" forState:UIControlStateNormal];
}
}
- (void)handleTimer:(NSTimer *)timer
{
self.counter--;
self.timerLabel.text = [NSString stringWithFormat:@"%ld", self.counter];
if (self.counter <= 0)
{
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
[self.myTimer invalidate];
self.myTimer = nil;
self.timerButton.enabled = NO;
}
}
- (IBAction)reset:(id)sender
{
self.timerButton.enabled = YES;
self.counter = self.counterSegment;
self.timerLabel.text = timerCount;
self.timerButton.titleLabel.text = @"Start";
self.timerButton.titleLabel.adjustsFontSizeToFitWidth = YES;
}
- (void)segmentedControl:(SVSegmentedControl*)segmentedControl didSelectIndex:(NSUInteger)index
{
if (self.myTimer)
{
[self.myTimer invalidate];
self.myTimer = nil;
self.timerButton.titleLabel.text = @"Start";
self.timerButton.titleLabel.adjustsFontSizeToFitWidth = YES;
}
else
{
self.timerButton.enabled = YES;
self.counter = self.counterSegment;
self.timerLabel.text = timerCount;
self.timerButton.titleLabel.text = @"Start";
self.timerButton.titleLabel.adjustsFontSizeToFitWidth = YES;
}
if (index == 0)
{
NSLog(@"15 sec");
self.timerCount = @"15";
self.counterSegment = 15;
}
else if (index == 1)
{
NSLog(@"30 sec");
self.timerCount = @"30";
self.counterSegment = 30;
}
}
このコードはちょうど1つのボタンのためにもうまくいくようです...あなたはそれにどのような問題がありますか? – sergio