2009-08-25 80 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属性]];