添加手势识别器到tableView头不起作用?
我知道一个“表视图标题”(表视图的最顶部)是一个视图所以我尝试添加一个UITapGestureRecognizer,但它不工作…
代码很简单:
- (void)tap:(UITapGestureRecognizer *)recognizer { // do something } UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)]; [self.tableView.tableHeaderView addGestureRecognizer:recognizer];
任何提示在这里关心? 非常感谢
这里是适合我的东西:相反,添加这个:
self.tableView.tableHeaderView
我在桌面上的每个UILabel上添加手势识别器。
-(UIView*)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { UILabel *headerLabel = [[UILabel alloc]init]; headerLabel.tag = section; headerLabel.userInteractionEnabled = YES; headerLabel.backgroundColor = [UIColor greenColor]; headerLabel.text = [NSString stringWithFormat:@"Header No.%d",section]; headerLabel.frame = CGRectMake(0, 0, tableView.tableHeaderView.frame.size.width, tableView.tableHeaderView.frame.size.height); UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(catchHeaderGesture:)]; tapGesture.cancelsTouchesInView = NO; [headerLabel addGestureRecognizer:tapGesture]; return headerLabel; //return nil; } -(void)catchHeaderGesture:(UIGestureRecognizer*)sender { UILabel *caughtLabel = (UILabel*)sender.view; NSLog(@"header no : %d", caughtLabel.tag); }
我希望有帮助。
首先确保您在viewDidLoad或viewWillAppear中调用此代码部分
UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)]; [self.tableView.tableHeaderView addGestureRecognizer:recognizer];
其次,请确保
self.tableView.tableHeaderView
不是null,添加
NSLog([self.tableView.tableHeaderView description]);
并检查控制台的输出
我刚刚试过你的代码,水龙头正确收到