UItableViewController添加UITouch事件(添加点击事件)

谢诚
2023-12-01

问题起源:准备在tableview的头视图添加UITouch事件,发现没有响应。

查找问题:经过查找,原因是事件响应被UIScrollView拦截了。

解决方法:创建一个继承于tableView类,给这个tableView添加一个点击事件,把收回键盘的代码写在这个事件中,然后让有这个需求的tableView都继承自这个tableView。(代码来源 - http://m.blog.csdn.net/blog/delicious_d/44487127)

在.h 文件中

#import <UIKit/UIKit.h>
@interface InfomationTableView : UITableView
- (void)addToucheEvent:(UITapGestureRecognizer *)tap;
@end
在.m 文件中

@implementation InfomationTableView
- (id)initWithFrame:(CGRect)frame style:(UITableViewStyle)style
{
    self = [super initWithFrame:frame style:style];
    if (self) {
        UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(addToucheEvent:)];
        [self addGestureRecognizer:tap];
    }
    return self;
}
- (void)addToucheEvent:(UITapGestureRecognizer *)tap
{
    [self endEditing:YES];
}

在你需要用到的地方创建实例对象:

    TouchEventForTableView *tableView = [[TouchEventForTableView alloc] initWithFrame:CGRectMake(0,          0self.view.width, self.view.height-64-80) style:UITableViewStyleGrouped];

    tableView.dataSource = self;

    tableView.delegate = self;

    self.tableView = tableView;(self.tableView 是我原tableViewController的






 类似资料: