如何快速获取WKWebview内容大小?

问题描述 投票:0回答:1

我有问题 获取 WKWebview 的真实内容大小,有什么想法吗?

如何确定一个WKWebView的内容大小? 上面的答案对我不起作用,有什么想法吗?谢谢!

swift wkwebview
1个回答
0
投票

下面的代码对我有用,但是一旦 WKWebview 的视图树发生变化,这可能会出错。 发表你的最佳答案,谢谢!

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) {
        if let scroll_cls = NSClassFromString("WKChildScrollView"),
           let compose_cls = NSClassFromString("WKCompositingView") {
            let viewss = webView.allSubViewsOf(cls: scroll_cls)
            if let first = viewss.first?.subviews.first,
               first.isKind(of: compose_cls) {
                if webView.bounds.height >= first.bounds.height {
                    // webivew is at bottom
                }
            }
        }
        
    }
}


extension UIView {
    func allSubViewsOf(cls: AnyClass) -> [UIView] {
        var all = [UIView]()
        func getSubview(view: UIView) {
            if view.isKind(of: cls) {
                all.append(view)
            }
            guard view.subviews.count > 0 else { return }
            view.subviews.forEach{ getSubview(view: $0) }
        }
        getSubview(view: self)
        return all
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.