UISlider 的 editingDidEnd 事件在 iPad 中不起作用
Posted
技术标签:
【中文标题】UISlider 的 editingDidEnd 事件在 iPad 中不起作用【英文标题】:UISlider's editingDidEnd event is not working in iPad 【发布时间】:2011-05-02 09:32:59 【问题描述】:我想在滑动 UISlider 结束时触发一种方法。我在 xib 中使用了 UISlider 的“editingDidEnd”事件并将其附加到 IBAction 方法,但该方法没有被调用。谁能帮我知道UISlider 什么时候结束滑动?
【问题讨论】:
【参考方案1】:您可以附加到“UIControlEventValueChanged”滑块事件,并在事件处理程序中使用以下代码:
[slider addTarget:self action:@selector(handleValueChanged:event:) forControlEvents:UIControlEventValueChanged];
- (void)handleValueChanged:(id)sender event:(id)event
UITouch *touchEvent = [[event allTouches] anyObject]; // there's only one touch
if (touchEvent.phase == UITouchPhaseEnded) /* place your code here */
【讨论】:
这不是 OP 要求的。【参考方案2】:UISlider 继承自 UIControl,因此您应该能够在“UIControlEventTouchUpInside”上添加和操作
尝试类似:
[slider addTarget:self action:@selector(sliderTouchUpInsideAction:) forControlEvents:UIControlEventTouchUpInside];
希望这会有所帮助, 文森特
【讨论】:
好的这种方法会在触摸发生时触发我的方法,但我想知道滑块上的触摸何时结束。 当您抬起手指而手指仍在控件边界内时,会触发内部触摸,因此问题一定出在其他地方:“控件中的触摸事件手指在控件的边界内。” 顺便说一句,您可能还想检测 touchUpOutside - 因为这也表示编辑结束 - 滑块不像按钮(在外部触摸意味着您已经放弃了操作)以上是关于UISlider 的 editingDidEnd 事件在 iPad 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章