予固定的环不通过将条件dealCard
而不是在startPause
停止的问题。
更新1
更新0
- (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:1.0
target:self
selector:@selector(dealCard)
userInfo:nil
repeats:YES];
}
else
[timer invalidate];
}
}
除了上述修改后的代码,我添加一个IBOutlet
属性myButton
为由多个人的建议,并改变了NSTimer
到repeats:YES
从repeats:NO
,我从dealCard
删除了呼叫[self startPause]
。现在系统似乎起作用,只是“while”条件self.deal length]>cardNum
的故障不能正确地使条款中的NSTimer
无效。
我可以使用一些关于为什么invalidate没有被解雇的反馈。
更新0
Continuing this answered question,我想添加一个 “startPause” 的UIButton的 “暂停” 的一部分。点击按钮后,我希望它的标题和动作是“暂停”,并且我希望它的标题在“恢复”和“暂停”之间切换。
这个按钮是在Storyboard中创建的,我想不出如何为按钮创建一个标识符,所以我可以用编程方式改变它。我怀疑我需要增强按钮的IBAction
方法以包含“发件人”,但我可能会离开。
目前我有以下未完成的代码。
- (IBAction)startPause: (UIButton *)sender{
NSString *buttonTitle = sender.currentTitle;
if ([buttonTitle isEqual: @"Pause"]) {
[myButton setTitle:@"Resume" forState:UIControlStateNormal]; //**** myButton is what?
if ([self.deal length]>cardNum) {
timer = [NSTimer scheduledTimerWithTimeInterval:1.0
target:self
selector:@selector(dealCard)
userInfo:nil
repeats:NO];
}
}
}
(我知道我还没有开始代码的“其他”部分)。
如何挂钩myButton
上面我在故事板startPause
按钮?
您是否将故事板中的'touch up inside'事件链接到您的IBAction? – danypata
你是否试图以编程方式改变按钮的动作?按下按钮后,上面的代码是否会被触发? – Dan
对不起,我以前没有看到这些评论。是的,我确实在故事板中有'连接到内部'。是的,我试图通过编程方式改变按钮的标题,并且点击按钮时触发上面的代码。 – zerowords