UITableView上的UIWebView - 如何在它们之间切换?

时间:2012-09-13 23:11:22

标签: iphone uitableview uiwebview show-hide user-interaction

好的,我有一种情况,用户在我的应用中查找单词。有关该单词的静态信息显示在屏幕的前1/3处。用户可以在屏幕的底部2/3中查看有关此单词的更多信息。此信息通过两个不同的视图显示...

第一个视图是显示用户活动的UITableView,另一个是在Web上查看单词的UIWebView。我只是将UIWebView放在UITable视图的顶部,当用户按下按钮时,我只是隐藏/取消隐藏UIWebView。

一切都很好,除了任何用户交互总是使用UIWebView,即使它被隐藏,因此用户无法在现在可见的UITableView中滚动。

是否有一种简单的方法可以“停用”UIWebView,从而允许用户在下面隐藏的UITableView中滚动?

现在的相关代码是:

- (IBAction)pressDictionaryTab:(id)sender {
    webView.hidden = NO;
}

- (IBAction)pressHistoryTab:(id)sender {
    webView.hidden = YES;
}

干杯: - )

2 个答案:

答案 0 :(得分:1)

来自UIWebView文档:

  

重要您不应在UIScrollView对象中嵌入UIWebView或UITableView对象。如果这样做,可能会导致意外行为,因为两个对象的触摸事件可能会混淆和错误处理。

如果您在iPhone下,请使用Web视图推送新的视图控制器。在iPad下,在UIPopoverController中显示一个小视图控制器。

答案 1 :(得分:1)

除了隐藏它之外,您可以尝试sendSubviewToBack,如下所示:

- (IBAction)pressDictionaryTab:(id)sender {
    webView.hidden = NO;
    tableView.hidden = YES;
    [self.view sendSubviewToBack:tableView];
}

- (IBAction)pressHistoryTab:(id)sender {
    webView.hidden = YES;
    tableView.hidden = NO;
    [self.view sendSubviewToBack:webView];
}