码迷,mamicode.com
首页 > 其他好文 > 详细

UIView添加手势 然后UITableView 添加进这个View 导致UITableView 的单元格点击事件无效

时间:2015-08-17 21:54:16      阅读:6214      评论:0      收藏:0      [点我收藏+]

标签:ios   uitableview   uiview   

#import "ViewController.h"

@interface ViewController ()<UITableViewDataSource,UITableViewDelegate,UIGestureRecognizerDelegate>

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
   
    UIView * v = [[UIView alloc] initWithFrame:CGRectMake(20, 20, 280, 100)];
    v.backgroundColor = [UIColor redColor];
    [self.view addSubview:v];
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewClick:)];
    tap.delegate  = self;
    [v addGestureRecognizer:tap];
    
    UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 280, 100)];
    tableView.delegate = self;
    tableView.dataSource = self;
    
    [v addSubview:tableView];
}
-(void) viewClick:(UITapGestureRecognizer*) tap
{
    NSLog(@"点击view");
}

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return 1;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 1;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    UITableViewCell * cell = [UITableViewCell new];
    cell.textLabel.text = @"测试";
    return cell;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"点击单元格");
}


#pragma mark - UIGestureRecognizerDelegate
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
    // 若为UITableViewCellContentView(即点击了tableViewCell),则不截获Touch事件
    if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) {
        return NO;
    }
    return  YES;
}


- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

解决方案是 添加手势的代理 重写- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 函数

以下是代码



版权声明:本文为博主原创文章,未经博主允许不得转载。

UIView添加手势 然后UITableView 添加进这个View 导致UITableView 的单元格点击事件无效

标签:ios   uitableview   uiview   

原文地址:http://blog.csdn.net/fhongchan/article/details/47731571

(2)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!