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