是否正在进行一些优化来删除 View 或其他内容?尽管我已经将其设置为透明,但我仍然希望它能够接收触摸事件。不过,如果 alpha == 0,这些事件似乎不会触发。
最佳答案
你说得对,touches don't get detected on transparent views :
“默认情况下, View 接收触摸事件,但您可以将其 userInteractionEnabled 属性设置为 NO 以关闭事件传递。如果 View 是隐藏的或透明的,则 View 也不会接收事件。”
将 View 设置为 1% alpha,甚至几个点怎么样?也许你的用户界面应该显示一个幽灵覆盖。
您可以做的另一件事是创建一个 UIView 子类,将其框定为相同大小,然后覆盖它。默认情况下,UIView 的背景颜色为 [UIColor clearColor],但您仍然可以检测到其上的触摸。
关于iPhone——当 alpha 设置为零时,为什么 UIViews 上的 TouchBegan 不触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2215834/