我有一個button
在timingView
,按鈕本身就說明,當計時器啓動時左:按鈕被刪除
func startTiming(button: UIButton, duration: Double, timingView: UIView?) {
var duration = duration
button.setTitle(String(Int(duration)), for: .normal)
let timer = Timer.scheduledTimer(withTimeInterval: 1, repeats: true) {_ in
if duration > 0 {
duration -= 1
button.setTitle(String(Int(duration)), for: .normal)
}
}
DispatchQueue.main.asyncAfter(deadline: .now() + duration) {
timer.invalidate()
if timingView != nil {
timingView?.removeFromSuperview()
}
}
}
而且timingView
被刪除,每當用戶在計時過程水龍頭button
:
func cancelAbilityTiming(sender: UIButton) {
sender.superview!.superview!.removeFromSuperview()
// remove timingView from superview
}
我期待timingView
及其所有子視圖得到去除每個定時器被取消的時間,但是,如果我取消計時器,然後重新啓動它,就會有2個定時器正在進行的同一時間(按鈕標籤每秒更換兩次,以不同的數字),我該如何避免出現這種情況?
編輯:
你確定你已經放置的時間視圖內的按鈕? –
@MidhunMP是我在界面構建器中做過 –
檢查它是否正確放置在定時視圖中,如果可能請分享一下ib樹形結構? –