我有一个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树形结构? –