我想创建一个完全透明的UIView叠加层(它有子视图)来接收触摸。我可以将alpha设置为低值(如0.02)以获得近似效果。
但我想知道alpha == 0
UIView是否有可能通过其他UIView配置接收触摸?
答案 0 :(得分:4)
您可以通过覆盖完全透明视图的类中的hitTest:withEvent:
方法来完成此操作,例如:
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
return self;
}
当然,hitTest:withEvent:
的实施并非如此简单。关键是,只要某事从hitTest:withEvent:
返回该视图,即使是完全透明的视图也是可触摸的。
但请注意,使用hitTest:withEvent:
进行操作是一种简单的方法来创建一些非常奇怪的错误。请谨慎使用此方法。
答案 1 :(得分:3)
更好的方法是设置背景颜色:
UIView *view = ...;
view.backgroundColor = [UIColor clearColor];
为此添加UITapGestureRecognizer
以连接选择器以响应点击。