予固定的環不通過將條件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