【问题标题】:UISlider's editingDidEnd event is not working in iPadUISlider 的 editingDidEnd 事件在 iPad 中不起作用
【发布时间】:2011-05-02 09:32:59
【问题描述】:

我想在滑动 UISlider 结束时触发一种方法。我在 xib 中使用了 UISlider 的“editingDidEnd”事件并将其附加到 IBAction 方法,但该方法没有被调用。谁能帮我知道UISlider 什么时候结束滑动?

【问题讨论】:

    标签: iphone ipad 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 - 因为这也表示编辑结束 - 滑块不像按钮(在外部触摸意味着您已经放弃了操作)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-06
    • 2012-09-25
    • 1970-01-01
    相关资源
    最近更新 更多