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