iphone - 在某些 UIView 之外检测触摸事件

标签 iphone ios uiview

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

最佳答案

巨大的 UIButton 它不是解决您问题的好方法。为此,您可以简单地使用 UIGestureRecognizer

你可以这样分配一个:

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

然后,只需将手势添加到您想要响应所选选择器的 View 即可。

[self.view addGestureRecognizer:tapImageRecognizer];

可能还有其他

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

只是不要忘记实现手势识别器使用的方法

-(void)dismissPopUp
{
   //your dimiss code here
}

关于iphone - 在某些 UIView 之外检测触摸事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18676635/

相关文章:

iPhone SDK : Call tableview function anywhere

ios - 在 Xcode 项目模板中定位 iOS 6 时 UIApplicationMain 出现错误

ios - UIView出现错误: Expected unqualified-id before '=' token

ios - 快速停止 AVPlayer

iphone - CABasicAnimation 对drawInContext 的调用导致实例变量重置为零

ios - iPad View 布局类似于 facebook

ios - 当颜色来自 NSArray 时,如何在 tableViewCell 中设置多个 UIView 的边框颜色

快速更改背景颜色并在 UIVIew 中有圆角?

iphone - 代码优化

iphone - 在 iOS 应用程序的 XCode 6.1 中设置 Launchimage 时出现错误