我已经根据UIPickerView
编写了一个自定义类。在一个类中,我实现了下一个方法:
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
let min = (selectedRow(inComponent: 0) % minutes.count)
let sec = (selectedRow(inComponent: 1) % seconds.count)
self.min = min
self.sec = sec
}
每次用户选择" min"和"秒"使用选择器视图,这些类变量会相应地更改。所以,它的工作正常。
现在,我希望这个类在每次更改这些变量时发送事件。是否可以为此类采用valueChanged
事件,以及如何实现它,或者我必须为此目的制作自定义事件?我想以这种方式做到能够通过IB制作行动渠道。如果我错过了模式,请纠正我。
可能是我把这个问题换句话说:是什么让内置UIDataPicker
能够通过操作出口连接到界面构建器中的视图控制器 - 我应该添加到我的自定义类中以实现部分实现功能?
UIDatePicker
类使用UIPickerView
的自定义子类来显示日期和时间。"如果我错了,请在此纠正我,但他们也指出UIDatePicker
继承自UIControl
而不是UIPickerView
。至于UIPickerView
- 他们说它继承自UIView
。因此,我认为UIControl
和UIPickerView
的{{1}}的继承方面没有任何联系。此外,由于UIDatePicker
类的多重继承,我无法继承UIControl
以获取事件发送功能。无法理解为什么这里的内容如此奇怪,我无法UIView
使用UIControl
功能。
答案 0 :(得分:1)
YourCustomControl
继承自UIControl
UIPickerView
YourCustomControl
设置为此选择器的委托要发送事件,您需要添加此行
sendActions(for: .valueChanged)
在这些变量发生变化的每个地方