1. 程式人生 > >iOS-UITableView上新增手勢且和didSelect方法不發生衝突

iOS-UITableView上新增手勢且和didSelect方法不發生衝突

在UITableView上新增手勢且和自身cell的didSelect方法不發生衝突
- (void)viewDidLoad {
    [self initTableView];
}

- (void) initTableView {
    UITableView *tableView = [[UITableView alloc] init];
    tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
    tableView.delegate = self;
    tableView.dataSource = self;
    tableView.backgroundColor = GCOLOR;
    tableView.showsVerticalScrollIndicator = NO;
    [self.view addSubview:tableView];
    [tableView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.right.mas_equalTo(0);
        make.top.mas_equalTo(0);
        make.bottom.mas_equalTo(iPhoneX ? @-84 : @-50);
    }];
    self.tableView = tableView;
    
    //區頭高度
    if (@available(iOS 11.0, *)) {
        self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
        // est和代理 可選1個
        self.tableView.estimatedSectionHeaderHeight = 10;
    } else {
        self.automaticallyAdjustsScrollViewInsets = NO;
    }
    //table新增手勢點選
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] init];
    tap.delegate = self;
    [tableView addGestureRecognizer:tap];
}

#pragma mark - 手勢代理
//table新增手勢
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
    if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) {
        return NO;
    } else {
        self.cxHelpV.hideView = YES;
        return YES;
    }
}