iOS開発まとめ-ウェブページの高さを取得する

1384 ワード

前言
それは簡単だと思いました.WKWebViewのSrollViewのコンテンツの高さを取ってもJSを呼び出しても、後ろのページの高さがなかなか取れない場合があります.
考えをまとめる
KVO監聴scrollView.com ntSize
実現する
       [self.webView addObserver:self forKeyPath:@"scrollView.contentSize" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:@"DJWebKitContext"];
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{
    if([keyPath isEqualToString:@"scrollView.contentSize"])
    {
        CGFloat webViewContentHeight = self.webView.scrollView.contentSize.height;
        if (webViewContentHeight != 50) {
            CGRect frame = self.webView.frame;
            frame.size.height = webViewContentHeight;
            self.webView.frame = frame;
            [self.webView sizeToFit];
            self.height = self.webView.maxY + 10;
            //              
            if (self.delegate && [self.delegate respondsToSelector:@selector(mouoDiaryDetailHeaderViewWebDidFinish)]) {
                [self.delegate mouoDiaryDetailHeaderViewWebDidFinish];
            }
        }
        
    }
    
}
- (void)dealloc{
    [self.webView removeObserver:self forKeyPath:@"scrollView.contentSize" context:@"DJWebKitContext"];
}