我在试着弄清楚这是怎么做的the right way.我试着描述过这样的情况: 在此处输入图像描述

我要添加UITableView作为UIView的子视图.UIViewpinchGestureRecognizer会对轻触做出react ,但当这样做时,桌面视图会停止对这两个手势的react (它仍然会对滑动做出react ).

我已经用下面的代码实现了,但这显然不是一个好的解决方案,我相信还有更好的方法.这是放在UIView(超级视图)中的:

-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
    if([super hitTest:point withEvent:event] == self) {
        for (id gesture in self.gestureRecognizers) {
            [gesture setEnabled:YES];
        }
        return self;
    }
    for (id gesture in self.gestureRecognizers) {
        [gesture setEnabled:NO];
    }
    return [self.subviews lastObject];
}

推荐答案

我有一个非常类似的问题,并找到了我的解决方案in this SO question.总之,将您自己设置为UIGestureRecognizer的代表,然后在允许识别器处理touch 之前判断目标视图.相关的委托方法为:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
       shouldReceiveTouch:(UITouch *)touch

Ios相关问答推荐

React Native Text组件内部TextInput组件在iOS上的问题:在TextInput组件内部键入文本时失go 焦点

iOS SwiftUI需要不带箭头显示弹出窗口""

iPhone:iOS 17.4中没有气压数据

SwiftUI中的视频时间轴

Swift-如何通过Case Let访问模型变量

视图未更新以在按下按钮时显示另一个视图

当 Swift 枚举具有 any existential 作为其关联值之一时,我如何使它符合 `Equatable`?

叠加视图不在堆栈中维护自身 - SwiftUI

集成 IDNow SDK 时未找到 Xcode FLAnimatedImage.h 文件问题

clipShape swift的三元

实现一个将块用作回调的方法

Xcode intellisense 彩色框中字母的含义,如 f、T、C、M、P、C、K、# 等

本月使用 iOS 的天数?

将图像保存到 Documents 目录并检索邮箱附件

'+entityForName: nil 不是合法的 NSManagedObjectContext 参数 - 核心数据

向标签栏控制器添加新标签

如何覆盖@synthesized getter?

如何找出用于构建 *.ipa 文件的配置文件?

如何为 iOS 13 的 SF Symbols 设置权重?

将 struct 保存到 UserDefaults