修改
也许我错误地描述了这个问题。让我补充一点,这个分段控制器使用以下代码控制NSTimer
的速度。
- (IBAction) segmentAction:(id)sender
{
speed = [[speeds objectAtIndex:[sender selectedSegmentIndex]] integerValue];
}
- (IBAction)startPause: (UIButton *)sender{
NSString *buttonTitle = sender.currentTitle;
if ([buttonTitle isEqualToString: @"Pause"]) {
[self.myButton setTitle:@"Resume" forState:UIControlStateNormal];
[timer invalidate];
}
else
{
[self.myButton setTitle:@"Pause" forState:UIControlStateNormal];
if ([self.deal length]>cardNum) {
timer = [NSTimer scheduledTimerWithTimeInterval:speed
target:self
selector:@selector(dealCard)
userInfo:nil
repeats:YES];
}
else
{
[timer invalidate];
}
}
}
当用户点击segmentedController中的任何段时,在点击startPause
按钮之前,NSTimer工作正常。如果用户在点击片段之前点击startPause
按钮,则NSTimer没有(期望的)延迟。这有助于更好地解释这种情况吗?
修改
我在Storyboard中有一个UISegmentedControl,想要初始化它。在Storyboard本身初始化它会特别好。下图显示了如何选择Med段,但是当应用程序启动时,未选择Med;而是用户必须触发Value changed
事件。我最初如何选择它? SO上的其他一个问题建议使用以下代码,但我还没想出如何将我的Storyboard中的UISegmentedControl与名称segmentControl
相关联。
segmentControl.selectedSegmentIndex=-1;