2016-06-18 2 views
0

私のプロジェクトでこのようなWKWebViewの高さを計算したいのですが、それはいつも使えません。どのように入手できますか?WKWebViewの高さを計算するには?

-(void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation  *)navigation{ 
    [webView sizeToFit]; 
    _height = webView.frame.size.height ; 
} 
+0

このメソッドは、呼び出したり、されていませんか? –

+0

はい、高さを返しますが、正確ではありません。 – charels

答えて

0

のUIViewの境界は矩形であり、独自の座標系(0,0)の位置(x、y)及びサイズ(幅、高さ)として表さ。 UIViewのフレームは、その中に含まれるスーパービューに対する位置(x、y)およびサイズ(幅、高さ)として表される四角形です。

したがって、フレームの代わりにbounds.heightを指定するだけで済みます。

+0

私はとても遅く返信して申し訳ありません。私は友人の助けを借りてこの問題を解決しました。ありがとうございました。 – charels

1

あなたはこれではJavaScriptの使用を保存し、すべての変更のループであなたを続けるだろう

- (void)viewDidLoad { 
... 
[self.webView.scrollView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew context:nil]; 
} 


- (void)dealloc 
{ 
[self.webView.scrollView removeObserver:self forKeyPath:@"contentSize" context:nil]; 
} 


- (void)observeValueForKeyPath:(NSString *)keyPath 
        ofObject:(id)object 
        change:(NSDictionary *)change 
        context:(void *)context 
{ 
if (object == self.webView.scrollView && [keyPath isEqual:@"contentSize"]) { 
    // we are here because the contentSize of the WebView's scrollview changed. 

    UIScrollView *scrollView = self.webView.scrollView; 
    NSLog(@"New contentSize: %f x %f", scrollView.contentSize.width, scrollView.contentSize.height); 
} 
} 

を観察キー値を使用することができます。

+0

私は非常に遅く返信して申し訳ありません、私は私の友人の助けを借りてこの問題を解決しました。ありがとうございました。 – charels

+2

解決したら、解決策を投稿できますか? –

1

何私のために働いたが、最終的です...

を私は、スクロールビューのKVOを試みたと私はclientHeightoffsetHeight、などのようなものを使用して、文書にはJavaScriptを評価しようとしました:document.body.scrollHeight。または、一番上の要素のscrollHeightを使用します(例:コンテナdiv。私はKVOを使用してloading WKWebviewプロパティが変更に耳を傾け、それは私がそうのような高さを決定ロード行うの際

[self.webview evaluateJavaScript: @"document.body.scrollHeight" 
         completionHandler: ^(id response, NSError *error) { 
      NSLog(@"Document height: %@", response); 
}]; 
関連する問題