UITableView上的UIWebView可防止表格单元格选择

时间:2014-03-13 17:50:48

标签: ios uitableview cocoa-touch uiwebview uikit

我的tablecells上有一个UIWebView。内容很大,应该可以滚动。

但是webview会阻止Tableview选择委托。如何克服这一点。如果我使userinteractionenabled = NO;滚动无效。

任何解决方案请帮忙。提前谢谢。

3 个答案:

答案 0 :(得分:1)

尝试使用hitTest

的覆盖
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
    id hitView = [super hitTest:point withEvent:event];

    if (hitView == self) {
        return nil;
    } else {
        return hitView;
    }
}

答案 1 :(得分:0)

你的设计绝对不好:Apple在UIWebView类引用中明确指出,不应该将UIWebViews添加到表格单元格中。此外,由于Web视图在内部管理UIScrollView,它捕获所有触摸。因此,做所需的唯一方法是继承UIWebView并覆盖触摸管理方法。这也是不可取的,因为根据Apple,UIWebView是少数不属于子类的类之一。

你必须认真重新考虑你的设计模式。

答案 2 :(得分:0)

我建议将单元格的大小调整为Web视图的content size。然后将webView.scrollView.scrollEnabled设置为NO

这允许用户仅在表格视图中滚动整个内容。不建议在相同方向滚动两个嵌套滚动视图,因为用户无法轻松定义滚动发生的位置。

至于选择行为,我想您必须决定是否要进行单元格选择或webView交互(链接点击等)。如果您选择单元格,请设置webView.userInteractionEnabled = NO