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

上一篇: UIView "stealing" touch from UITableView

下一篇: How do I put a UITableView into a UIView