UIView从UITableView中“窃取”触摸
我有一个自动完成表格,当用户在搜索栏按钮项中键入任何内容时,我会创建该框架。 问题是,我希望能够在用户接触到桌面或桌面时解除桌面视图,所以自然我在主视图中添加了轻触式识别器。
问题是,视图“劫持”了表中的触摸,所以当你尝试触摸表时会忽略它(这是非常有意义的,因为表是该UIView的子视图)
任何人都有聪明的解决方案 (我最初的预感是把UITableView放在视图窗口顶部的一个新窗口中,但我更喜欢是否有更优雅的东西)
也许你可以试试
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
if ([touch.view.superview.superview isKindOfClass:[UITableView class]]) return NO;
else return YES;
}
//初始识别器
UIGestureRecognizer *gestureRecognizer;
gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
[gestureRecognizer setCancelsTouchesInView:NO];
[self.view addGestureRecognizer:gestureRecognizer];
self.tapRecognizer = (UITapGestureRecognizer *)gestureRecognizer;
gestureRecognizer.delegate = self;
[gestureRecognizer release];
并在你的姿势中加入一些东西
- (void)handleTap:(UITapGestureRecognizer *)recognizer {
}
希望能帮助到你 :)
可能你可以试试
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
行用户的表视图选择方法会感觉用户选择了值和for
并在表外使用uiviews touch begin方法并检查rect CGRectContainsPoint(<#CGRect rect#>,<#CGPoint point#>)
链接地址: http://www.djcxy.com/p/87687.html