Swift 禁用 touchesEnded

Swift disable touchesEnded

我试图在有人单击按钮时在我的代码中禁用 TouchesEnded 事件。当用户点击另一个按钮时,TouchesEnded 应该再次被激活。

因此,为了了解我的应用程序的功能,每次您点击屏幕时,屏幕上的文字都会发生变化。但是当用户点击按钮 a 时,这个触摸事件应该被禁用。当用户点击按钮 b 时,它应该再次被激活。

我已经尝试过 self.view.isUserInteractionEnabled = false ,但是我无法再次点击按钮激活 userInteraction。

有人知道如何解决这个问题吗?

根据您描述的行为,我假设您的按钮是正在切换的视图的子视图 isUserInteractionEnabled?将该标志设置为 false 也会阻止用户在视图的子视图上进行交互。您可以通过调整视图层次结构来解决此问题,使您的按钮和 self.view 成为兄弟姐妹:也就是创建一个容器视图,将按钮和您引用的 self.view 作为子项。

“禁用 TouchesEnded 事件”没有意义。

您需要启用或禁用按钮并让事件正常发送。或者,如您所说,您可以使用 isUserInteractionEnabled=false 使按钮不再响应点击。

编辑:

重读你的post后,我想我明白你在说什么了:

  1. “每次单击屏幕时,屏幕上的文本都会发生变化”- 这意味着单击按钮以外的任何地方。

  2. "但是当用户点击按钮a时,这个触摸事件应该被禁用。当用户点击按钮b时,它应该被再次激活。"

所以您希望按钮点击 disable/enable 点击屏幕上的其他地方。

我建议使用附加到视图控制器内容视图的点击手势识别器 (UITapGestureRecognizer)。那些在开火时会触发一个动作,并且有一个 isEnabled 属性。如果您将其设置为 false,点击手势识别器将停止响应点击。