【问题标题】:Making draggable UIButton respond to touch events properly使可拖动的 UIButton 正确响应触摸事件
【发布时间】:2013-09-26 23:55:57
【问题描述】:

我的应用中有一个可拖动的UIButton。我希望能够对UIControlEventTouchUpInside 执行操作。这很好用。但是,如果用户拖动按钮然后从屏幕上抬起手指,我不希望它触发(此时触发依赖于UIControlEventTouchUpInside 的操作)。

有什么方法可以设置我的按钮的触摸事件侦听器,以便在 TouchUpInside 上触发事件,但前提是按钮没有被拖动?

【问题讨论】:

    标签: ios objective-c cocoa-touch uibutton


    【解决方案1】:

    你必须继承一个 UIButton,然后覆盖:

    - touchesMoved 
    - touchesEnded
    

    在 Moved 方法中,将 move 标志设置为 true,在 Ended 方法中,检查该标志。如果为真,请致电超级。否则,将其重定向到 touchDidCanceled。

    顺便说一句,如果您向我们展示如何使用手势识别器制作可拖动按钮会更好?

    【讨论】:

      【解决方案2】:

      你也可以这样做,将 UIButton 作为 UIView 的子视图。

      现在为 uibutton 设置 touchUpInside 并在 UIView 上添加 panGuesture。

      这就是内部的修饰和拖动永远不会搞砸的方式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-12
        • 2016-01-06
        • 1970-01-01
        • 2016-12-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多