手动触发和取消触摸事件



我有一个关于为iOS8编写自己的第三方键盘的问题。我的键盘看起来已经很不错了,但是缺少一些功能。如果你看iPhone上的标准键盘,你可以按下任何按钮,如果你用手指滑动到另一个按钮,第一个按钮的触摸事件将被取消,第二个按钮将"激活"。因此,例如,如果我按下按钮"e",将手指滑动到"R"并松开手指,则字母"R"就是选定的字母。但我不知道如何实现这一点。

现在,在我的应用程序中,当我按下一个按钮并用手指滑动时,这个按钮永远不会"释放"。似乎只要我把手指放在显示屏上,我就被卡在了那个按钮上。

我想我需要这些触摸事件:

TouchUpInside:当用户点击按钮,并在按钮框内释放按钮时,此事件会被触发(此时我想写一封信)

TouchDragInside:当我的手指已经放在显示屏上并在按钮框内滑动时,就会发生这种情况。

TouchDragOutside:同上,只是在按钮框外滑动。

但问题是:TouchDragInside只是因为我点击的按钮而被解雇。因此,当TouchDragOutside被解雇时,我必须"释放"按钮,并在我手指所在的位置激活按钮。

我希望你能理解我的问题,如果你需要更多的信息或细节,请告诉我。

您可以考虑根本不使用UIControl。

只需在所有键的顶部使用透明的覆盖层,这样您就可以手动处理消息应该发送到哪个键。

最新更新