2012-09-13 23 views
1

好吧,我有一种情况,用户在我的应用程序中查找单词。关于该单词的静态信息显示在屏幕的前1/3处。用户可以在屏幕的底部2/3中看到关于这个词的更多信息。该信息通过两种不同的视图显示...UITableView上的UIWebView - 如何在它们之间切换?

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

一切都很好,除非任何用户交互始终与UIWebView相关,即使它是隐藏的,因此用户无法在现在可见的UITableView中滚动。

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

相关代码现在的问题是:

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

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

干杯:-)

回答

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]; 
} 
+0

谢谢丹,这是一个非常有用的功能,我相信我会使用它。我已经解决了事实上由于webview嵌入在滚动视图中的问题,所以当我隐藏webview时,scrollview仍然在tableview之上...解决方案:隐藏scrollview,但是您的代码也将起作用。 – InRainbows

1

从UIWebView的文档:

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

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

+0

我不认为这个问题具有Web视图作为表的子视图。 – danh

+0

Thankyou J2theC - 非常精明 - 我当然在滚动视图中嵌入了UIWebView。你的建议是正确的做法,但它也适用,如果我只是隐藏滚动视图,而不是webview :-) – InRainbows