[英]UIDatePicker mode countDownTimer value changed callback not calling first time
我在 UIDatePicker mode.countdownTimer 中遇到了这个奇怪的问题
当我在 datePicker 视图中添加上/下/左/右约束时,第一次没有注册回调。 但是,如果我只添加 Alignment 约束,则回调每次都有效。 也许它是一个错误。 知道为什么它不起作用吗?
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var datePicker: UIDatePicker!
override func viewDidLoad() {
super.viewDidLoad()
datePicker.datePickerMode = .countDownTimer
datePicker.addTarget(self, action: #selector(datePickerValueChanged(_:)), for: .valueChanged)
}
@objc func datePickerValueChanged(_ sender: UIDatePicker){
print("Selected value \(sender.countDownDuration)")
}
}
好的,这是 iOS 中的一个长期已知的错误,因为 iOS 7 左右。 如果将以下内容放入viewDidLoad
中,则可以解决您的情况:
DispatchQueue.main.async {
self.datePicker.countDownDuration = self.datePicker.countDownDuration
}
看起来很恶心,也很恶心。
设置 countDownDuration 的解决方法对我不起作用。 相反,我设法解决这个问题的唯一方法是用 UIPickerView 替换 UIDatePicker 并用 4 个组件自己填充它:小时、“小时”label、分钟、“分钟”label。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.