我将UIview定义为叠加视图:
self.disableViewOverlay = [[UIView alloc] initWithFrame:CGRectMake(0.0f,44.0f,320.0f,416.0f)];
self.disableViewOverlay.backgroundColor=[UIColor blackColor];
self.disableViewOverlay.alpha = 0;
现在我想禁用叠加视图,如果用户点击它...
[disableViewOverlay removeFromSuperview];
如何确定用户是否点按此叠加层视图?有一个“轻敲”的方法,就像一个按钮有一个IBAction?
谢谢!
答案 0 :(得分:3)
您有两种选择:
覆盖hitTest
;
UIView
覆盖touchesBegan:withEvent:
,touchesMoved:withEvent:
,touchesEnded:withEvent:
以获得更好的控制权。
这两种方法都要求您继承UIView
(您要检测点按的那个)。
分别查看UIView Class Reference或UIResponder Class Reference。
如果您不想继承UIView
,则另一个选项是将其附加到UITapGestureRecognizer
:
gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapOnView)];
[self.disableViewOverlay addGestureRecognizer:gestureRecognizer];
然后您将在handleTapOnView
功能中禁用叠加层。
手势识别器仅在iOS 3.2上可用。