ios - 我需要检测某个 View 上的触摸

标签 ios objective-c uiview touch

<分区>

我有这个 grayView 可以禁用 Controller 并使其看起来不活动,这是对我之前提出的问题的礼貌,但我需要检测 grayView 是否被触摸以及它是否被触摸touched 去掉 grayView。如果有人可以帮助我找出解决方案,我将不胜感激。我尝试使用 UITouchedBegan 和许多其他 stackoverflow 解决方案,但每一个都不起作用。任何帮助将不胜感激。

grayView 是一个 UIView

-(void)ViewDidLoad
{
    grayView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    grayView.backgroundColor = [UIColor colorWithWhite:0.5 alpha:0.5];
    [self.navigationController.view addSubview:grayView];
}

最佳答案

您可以将 UITapGestureRecognizer 添加到 grayView,并在触摸时从 superview 中删除 grayView

这是我的做法。

//your gray view
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self   action:@selector(removeGrayView:)];
tap.numberOfTapsRequired = 1;
[_yourGrayView addGestureRecognizer:tap];

确保在将 grayView 添加到 superView 之前添加此代码

然后,

-(void) removeGrayView: (UITapGestureRecognizer*) gesture {
     [_yourGrayView removeFromSuperView];
}

关于ios - 我需要检测某个 View 上的触摸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19713194/

相关文章:

ios - 在 Swift 中向下转换协议(protocol)

iphone - 从另一个类更改 UILabel 的文本

ios - 如何强制自定义单元格的 UIImageView 覆盖表格分隔符?

ios - 将图像从 UIImageView 复制到 UIView

ios - 从邮件应用程序打开 jpeg 图像到我的 iOS 应用程序

objective-c - 如何获取本地化的计时器标签,例如UIDatePickerModeCountDownTimer?

ios - 自动布局 UIScrollView 约束奇怪的行为

objective-c - 以编程方式禁用 Mac 上的所有通知中心横幅

ios - Swift 约束不在旋转之后

html - 从 Documents 目录在 UIWebview 中打开时,ios-css 和 js 无法在 html 文件中链接