gpt4 book ai didi

objective-c - iOS Touch 而不是 touchDown?

转载 作者:行者123 更新时间:2023-11-29 11:04:47 25 4
gpt4 key购买 nike

我正在尝试在我制作的小型合成器键盘上设置触摸事件,但我只能将“按下”事件连接到我制作的按钮上。

如何在按钮上设置“触摸”?假设有人按下一个键,然后用手指在其他按钮上滑动……您会希望其他键像钢琴一样“轻触”弹奏,对吧?不确定如何在 Interface Builder 中实现这一点。

任何帮助都会很棒 - 谢谢!肖恩

最佳答案

您需要连接的不仅仅是 touchDown 事件。为了实现您想要的效果,您不仅需要通过“向下”事件聆听初始触摸,还需要让您的应用程序了解“移动”和“触摸”事件,以便您可以适本地响应用户移动他们的手指。甚至更进一步,例如,通过将所有代码放在按钮子类中来尝试使每个按钮独立响应这些移动是很困难的。

相反,您需要创建一个单一的代码点,它可以同时查看所有按钮,接收用户的触摸,并根据这些触摸来决定要做什么。这将是包含所有按钮的 View Controller 的任务。

在此 View Controller 中,您可以使用 touchesBegan:touchesMoved:touchesEnded: 方法。然后,您应该使用 HitTest 来检查触摸到了哪些按钮。查看 convertPoint:hitTest:withEvent:pointInside:withEvent: 以对按钮执行测试。

基本上在这些触摸方法中,您将跟踪何时在 touchDown: 中按下新按钮,何时触摸移动到 touchesMoved: 中的新按钮,以及例如触摸来自哪个按钮,以及用户何时停止触摸 touchesEnded:。通过将所有这些放在一起,您可以编写代码来跟踪每个手指的移动、按下哪个按钮以及何时为这些按钮播放声音。

再次,我建议不要尝试将所有代码放在按钮操作的单独触摸处理程序中。相反,使用您的 View Controller 一次管理所有按钮之间的触摸。

希望这对您有所帮助。

关于objective-c - iOS Touch 而不是 touchDown?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14174470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com