当有人单击按钮时,我试图禁用代码中的TouchesEnded事件。当用户单击另一个按钮时,应该再次激活TouchesEnded。
因此,为了理解我的应用程序所做的,每次点击屏幕时,屏幕上的文本都会发生变化。但是当用户单击Button a时,应该禁用此触摸事件。当用户单击按钮b时,应该再次激活它。
我已经尝试过self.view.isUserInteractionEnabled = false了,但是我无法再次单击按钮来激活userInteraction。
有谁知道如何解决这个问题吗?
发布于 2021-01-15 15:20:09
从您描述的行为来看,我假设您的按钮是切换isUserInteractionEnabled的视图的子视图?将该标志设置为false也会阻止用户在视图的子视图上进行交互。您可以通过调整视图层次结构来修复这个问题,以便您的按钮和self.view是兄弟关系:也就是创建一个容器视图,其中包含按钮和作为子元素引用的self.view。
发布于 2021-01-15 15:50:41
“禁用TouchesEnded事件”是没有意义的。
您需要启用或禁用按钮,并让事件按正常方式发送。或者,正如您所说的,您可以使用isUserInteractionEnabled=false使按钮不再响应点击。
编辑:
在重读你的帖子后,我想我明白你的意思了:
。
因此,您希望单击按钮来禁用/启用屏幕上其他地方的按钮。
我建议使用附加到视图控制器的内容视图的点击手势识别器(UITapGestureRecognizer)。这些操作在触发时触发,并具有isEnabled属性。如果将其设置为false,则点击手势识别器将停止对抽头的响应。
https://stackoverflow.com/questions/65738579
复制相似问题