我想在用户开始更改UIDatePicker的值时触发操作。我的第一直觉是使用datePickerEditingDidBegin
方法,但似乎没有做到这一点。
答案 0 :(得分:0)
直接来自文档:
UIDatePicker: Responding to User Interaction
日期选择器使用Target-Action设计模式来通知您的应用 当用户更改所选日期时。要在日期时收到通知 选择器的值更改,注册您的操作方法 valueChanged事件。在运行时,日期选择器调用您的方法 响应用户选择日期或时间。
您连接日期 使用addTarget(_:action:for :)方法选择你的action方法 或者在Interface Builder中创建连接。签名 action方法采用清单1中列出的三种形式之一。 选择提供您需要回复的信息的表单 到日期选择器中的值更改。
清单1日期选择器的操作方法
@IBAction func doSomething() @IBAction func doSomething(sender: UIDatePicker) @IBAction func doSomething(sender: UIDatePicker, forEvent event: UIEvent)
将日期选择器valueChanged
发送事件连接到IBAction
修改强>:
根据文档,UIDatePicker
没有任何委托方法,因此datePickerEditingDidBegin
之类的内容没有任何意义。
您必须使用UIControlEvent
。如果valueChanged
不适合您的需求,我可能会建议touchDragInside
。
手指在控件范围内拖动的事件。
位于here in the docs的其他UIControlEvent
说明。
答案 1 :(得分:0)
这对我也不起作用,我尝试了上面所有的 UIEvent。我能够通过添加一个平移手势识别器来实现这一点,符合委托和 shouldRecognizeSimultaneouslyWith(: )
= true 。在此处查看答案:https://stackoverflow.com/a/25719326/4970749