代码之家  ›  专栏  ›  技术社区  ›  lemnar

取消选择触摸外部的ui按钮

  •  1
  • lemnar  · 技术社区  · 15 年前

    我有一个 UIButton 选择自己 UIControlEventTouchUpInside . 它在上取消选择自身 UIControlEventTouchUpOutside . 我还希望它在按钮外有一个触屏时取消选择自身。有没有好的方法不用子类化就可以做到这一点? UIWindow 压倒一切 -hitTest:withEvent: ?

    编辑: 我刚刚发现 this question 这证实了我的担心,没有一个真正干净的方法来做到这一点。

    3 回复  |  直到 15 年前
        1
  •  0
  •   Stefan Arentz    15 年前

    按钮不应该这样工作。如果内部没有激活的触摸,则无法激活。你到底想实现什么?也许uibutton不是这里的最佳选择。

        2
  •  0
  •   David Kanarek    15 年前

    通过实现touchebegan/moved/ended方法,可以使用uiviewcontroller完成此操作。如果他们检测到按钮外部的触摸,则将其状态设置为正常。看一看 Event Handling .

        3
  •  0
  •   lemnar    15 年前

    我解决了这个问题,然后释放了 the source . 我不需要子类 UIWindow ,但我确实需要重写 -hitTest:withEvent: .