iOS 7上的UITableView背景视图手势?

iOS 7上的UITableView背景视图手势?,uitableview,ios7,uigesturerecognizer,Uitableview,Ios7,Uigesturerecognizer,我有一个视图控制器子类。我正在尝试连接一个手势识别器来捕捉行下方的点击 要做到这一点,我在底部有一个空行,因此用户可以始终滚动,以便屏幕上有一个空单元格。我可以很容易地在这一排截住水龙头 但iOS 7上的提醒即使在这种情况下也支持点击;如果桌子上还有三行的空间,那么这三行中的任何一行都可以被点击,而不仅仅是第一行 例如,您可以点击红色区域: 为了在iOS 6上实现这一点,我在桌子上添加了一个背景视图,并在上面挂了一个手势识别器: UIView *backgroundView = [[UIVie

我有一个视图控制器子类。我正在尝试连接一个手势识别器来捕捉行下方的点击

要做到这一点,我在底部有一个空行,因此用户可以始终滚动,以便屏幕上有一个空单元格。我可以很容易地在这一排截住水龙头

但iOS 7上的提醒即使在这种情况下也支持点击;如果桌子上还有三行的空间,那么这三行中的任何一行都可以被点击,而不仅仅是第一行

例如,您可以点击红色区域:

为了在iOS 6上实现这一点,我在桌子上添加了一个背景视图,并在上面挂了一个手势识别器:

UIView *backgroundView = [[UIView alloc] init];
[backgroundView addGestureRecognizer:_tapOutsideGesture];
backgroundView.backgroundColor = [UIColor clearColor];
self.tableView.backgroundView = backgroundView;
这在6.1上有效,但在7.0上无效。我错过了什么

我正在使用Xcode 5.0和7.0 SDK构建,使用您可以尝试使用的
IPHONEOS\u部署\u TARGET=6.1

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch;
,并检查您在哪个视图中,如果您在表格单元格中,则返回
NO

当然,iOS7存在一些问题。 如果您想检查自己是否在
UITableViewCell
中,您必须在iOS7和iOS6中调用
view.superview.superview

有关iOS7的更多信息:
在表格视图中添加手势识别器

UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doSomething:)];
tapGesture.delegate = self;
[self.tableView addGestureRecognizer:tapGesture];
检查水龙头是否在某个牢房上

#pragma mark – UIGestureRecognizerDelegate

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {

   return ![self.tableView indexPathForRowAtPoint:[touch locationInView:self.tableView]];
}