【发布时间】:2015-05-15 22:47:34
【问题描述】:
我试图隐藏一个 uiview 但仍然让它接收触摸事件。我将 alpha 设置为 0,如下所示:
mainView.alpha = 0.0
我也尝试将其设置为 true,但它没有做任何事情
mainView.userInteractionEnabled = true
问题是当我这样做时它不再接收触摸事件。如何使其能够接收触摸事件但有效隐藏?
【问题讨论】:
-
你可以的,是的;但最好重新考虑一下。如果用户看不到它,要求用户触摸它有什么意义?您应该重新考虑触摸处理的架构。
-
这是意料之中的。隐藏视图或 alpha 为 0 的视图永远不会收到事件。
-
@matt 这在某些情况下完全有意义。例如,我有一个应用程序,其中元素的表示需要很小,但我希望用户的交互区域更大,但只是不可见。表示元素的对象,与接收事件的不可见对象不同。因此,在某些特殊情况下,拥有一个捕获用户输入的透明对象可能是有意义的,而不会出现架构设计问题。
-
@nbloqs 同意,我实际上为此使用了透明覆盖。发表评论时我没有想到。
-
这正是我这样做的确切原因,因为触摸事件的触摸区域比原始元素所保证的要大。