1

我想创建一个完全透明的 UIView 覆盖(并且它有子视图)来接收触摸。我可以将 alpha 设置为较低的值(如 0.02)以获得近似效果。

但我想知道 UIView 是否有可能alpha == 0通过其他 UIView 配置接收触摸?

4

2 回答 2

4

您可以通过覆盖hitTest:withEvent:完全透明视图的类中的方法来完成此操作,例如:

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
    return self;
}

当然,实现hitTest:withEvent:不必那么简单。关键是,只要有东西hitTest:withEvent:.

但是请注意,搞砸hitTest:withEvent:是一种创建一些非常奇怪的错误的简单方法。谨慎使用此方法。

于 2013-06-13T09:11:35.293 回答
3

更好的方法是设置背景颜色:

UIView *view = ...;
view.backgroundColor = [UIColor clearColor];

添加一个UITapGestureRecognizer来连接选择器以响应点击。

于 2013-06-13T10:11:23.887 回答