检测某些UIView之外的触摸事件

时间:2013-09-07 18:42:59

标签: iphone ios uiview

在我的应用程序中,点击一个按钮会弹出一个UIView,现在我想点击UIView以外的任何地方来关闭UIView。
我尝试在UIView下添加一个大透明按钮,调用按钮动作来关闭UIView,但由于顶部导航栏和底部标签栏,按钮无法扩展到全屏 有其他方法可以实现吗?

1 个答案:

答案 0 :(得分:8)

巨人UIButton对你的问题不是很好的解决方案。您可以简单地使用UIGestureRecognizer

您可以像这样分配一个:

UITapGestureRecognizer *tapImageRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self  action:@selector(dismissPopUp)];

然后,只需将手势添加到您要响应所选选择器的视图中。

[self.view addGestureRecognizer:tapImageRecognizer];

可能还有其他人

[self.navBar addGestureRecognizer:tapImageRecognizer];
//etc

不要忘记实现手势识别器

使用的方法
-(void)dismissPopUp
{
   //your dimiss code here
}