2009-08-25 59 views
0

有誰知道這個解決方案是否可以通過Apple提交應用程序批准?iPhone UIWebView高度

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    CGFloat webViewHeight = 0.0f; 
    if (self.subviews.count > 0) { 
     UIView *scrollerView = [self.subviews objectAtIndex:0]; 
     if (scrollerView.subviews.count > 0) { 
      UIView *webDocView = scrollerView.subviews.lastObject; 
      if ([webDocView isKindOfClass:[NSClassFromString(@"UIWebDocumentView") class]]) 
       webViewHeight = webDocView.frame.size.height; 
     } 
    } 
} 

謝謝。 哈密。

回答

0

而不是亂搞私人課程,可能會改變和打破你的應用程序,爲什麼不使用-stringByEvaluatingJavaScriptFromString:調整JavaScript的網頁?

+0

是的。它應該工作。但是當方向改變時,我遇到了一個巨大的問題。 當我使用通知方法時,該通知發生在應用程序佈局更改之前。所以,stringByEvaluatingJavaScriptFromString返回錯誤的值。 我試圖在調用stringByEvaluatingJavaScriptFromString之前添加一個延遲,它工作。 但延遲是不是很準確的方法:) 無論如何感謝 – Hamiseixas 2009-08-25 14:34:55

+0

我不認爲我明白你在這裏所說的 - stringByEvaluatingJavaScriptFromString返回錯誤的值。我的意思是使用它來實際改變JavaScript窗口的大小以響應方向變化,而不是問視圖大小是多少。它不應該返回任何東西。 – 2009-08-25 15:06:41

+0

OP想要確定UIWebView的高度,而不是改變它。我想他想要在UITableViewCell中嵌入一個UIWebView。 – NewbiZ 2010-03-26 19:39:03

7

落實UIWebViewDidfinishLoad委託方法和使用下面的代碼

嗨,

您可以使用以下方法來解決你的問題。

用於獲取pageOffset:

INT pageYOffset = [[webViewObj stringByEvaluatingJavaScriptFromString:@ 「window.pageYOffset」]的intValue];

爲了得到一個網頁的總滾動高度:

INT scrollHeight屬性= [[webViewObj stringByEvaluatingJavaScriptFromString:@ 「document.documentElement.scrollHeight」]的intValue];

用於滾動網頁到特定的偏移量:

[webViewObj stringByEvaluatingJavaScriptFromString:[的NSString stringWithFormat:@ 「的document.body.scrollTop =%d」,scrollHeight屬性]];