【问题标题】:How Do I Trigger a Button By Sliding Onto It?如何通过滑动触发按钮?
【发布时间】:2017-04-10 05:06:39
【问题描述】:

我正在开发一个带有音乐键盘组件的应用程序。

我需要 2 种类型的“发送事件”来触发键盘按键(UIButtons)。

1) “Touch Down”按我需要的方式触发按钮

2) 我需要触发按钮的第二种方式是从另一个按钮/键滑到一个按钮上,就像它被“按下”一样,当它从左侧滑动时或对。

我如何做到这一点?

【问题讨论】:

  • @matt 好的。这是一个很好的解释。不幸的是,这意味着我将从头开始并创建某种类型的“超级视图”来管理我需要的按钮操作......感谢您让我知道我试图实现的目标是基本的 UIButtons 和“发送”是不可能的事件”在 IB 中。
  • @matt 你知道任何关于如何在 Swift 中实现这样的东西的教程吗?
  • @matt 我只知道这在广义上是有意义的。我不知道如何实现这一点。我花了几个月的时间为我的应用程序设置当前的键盘(它是一个等距键盘,在滚动视图中的 8x8 网格中带有方形键)。使用具有 8x16 子视图的自定义超级视图从头开始重新编码的想法将增加我需要解决的更多问题...您确定没有简单的方法可以使用 UIButton 获得此功能吗?或者,您能否向我发送一个指向起点的链接,以了解如何使用自定义超级视图和子视图来执行此操作?感谢您的帮助!
  • @matt 更具体地说......有没有办法覆盖/继承 UIButton 代码,并允许这个额外的操作?如果我从 iPad 的外部滑动到其中一个外部按钮上,它会注册为“TouchDown”动作……有没有什么可以想象的方法可以在充满按钮的键盘中间实现?
  • @matt 好的。当你这样说时,这听起来更平易近人。我可能暂时把它放在次要位置,因为看起来我可能需要更多的研究才能胜任实施,但听起来绝对是正确的方法!谢谢!如果您不介意在下面简要重申您的答案,我将选择您的答案作为此问题的正确答案。再次感谢!

标签: ios xcode uibutton interface-builder


【解决方案1】:

您不能使用按钮的内置控件事件来执行此操作,原因很简单,除非触摸最初是 in,否则您根本不会在按钮中获得事件那个按钮(我在这里解释:https://stackoverflow.com/a/40414929/341994)。

不过,这听起来并不难做到。最简单的方法可能是将触摸响应(例如手势识别器)放入所有按钮的公共超级视图中。超级视图然后可以跟踪手势。它可以在任何给定时刻非常容易地找出触摸当前位于哪个按钮内。所以它可以管理整个交互。它甚至可以向按钮发送消息,告诉它们何时突出显示和取消突出显示。 (如果您不打算对任何东西使用按钮触摸处理,您甚至可能想放弃这些 按钮的想法;它们可能只是看起来像按钮的视图或自定义控件.)

【讨论】:

    猜你喜欢
    • 2020-02-20
    • 2015-07-11
    • 1970-01-01
    • 1970-01-01
    • 2013-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多