我有一个包含tableView的UITableViewController。我已经为这个控制器添加了一个轻击手势识别器,我希望当用户点击除了tableView的第一行(indexPath.row == 0
)之外的任何地方时都会发生这种情况。
我已经看到以下相关问题和答案(等等):
-(BOOL) gestureRecognizer:(UIGestureRecognizer *)gesture shouldReceiveTouch:(UITouch *)touch {
CGPoint buttonPosition = [touch locationInView:self.view];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:buttonPosition];
if (indexPath.row == 0) {
return NO; // will also be returned if I click on the header / footer
}
return YES;
}
答案 0 :(得分:1)
也许尝试在表格视图单元格上添加“不可见”UIButton,然后点击按钮标记作为索引。就像下面的伪代码一样:
-cellForRowAtIndexPath:index {
UIButton *button = [UIButton alloc]initWithFrame:cell.frame];
[button setTag:index.row];
[button addTarget:self action:@selector(getIndex:) forControlEvents:UIControlEventTouchUpInside];
[cell addSubview: button]
}
-(void)getIndex:(UIButton *)sender {
finalIndex = [sender tag];
}