iPhone——当 alpha 设置为零时,为什么 UIViews 上的 TouchBegan 不触发?

标签 iphone

是否正在进行一些优化来删除 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/

相关文章:

iphone - 排序/过滤 NSArray/NSMutableArray

ios - 如何在加载 View Controller 时更改状态栏样式?

iphone - 在另一个 UIView 中显示 UIImagePickerController

html - 解析包含 html 数据的 JSON

iphone - 如何在 iPhone 中运行应用程序时处理电话

iphone - 钥匙串(keychain)组访问以在我现有的应用程序之间共享数据

ios - View 未显示在 iPhone 模拟器上,但显示在实际设备上

iPhone:为什么核心数据中的批量插入这么慢?

使用 ZBarSDK 时 iPhone 相机失去自动对焦

iphone - 在 Socket :didReadData:withTag 上调用时 CocoaAsyncSocket 似乎失败