KVO 监听不到 WKWebView 的高度变化

08-29 17:26 126 0 1

使用 WKWebView 加载 H5 页面,想要回去到 H5 页面的高度,然后通过 kvo 监听 H5 高度,代码如下:

contentView.scrollView.addObserver(self, forKeyPath: "contentSize", options: [.new], context: nil)

但是怎么都监听不到变化

override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey: Any]?, context: UnsafeMutableRawPointer?) {
    guard let changes = change else {
        return
    }
    let newValue = changes[NSKeyValueChangeKey.newKey] as? Double ?? 0
    print("kvo height: \(newValue)")
}

这样打印高度,怎么怎么打印,都是 0.0,好神奇,为什么监听不到变化呢。

百思不得其解的时候发现,原来是我在添加 webview 的时候,就把高度写死成 841 了,如果 H5 页面的小于 841,内容就不足以撑开 webview, 所以我通过 JS 获取到的高度就是 841,所以导致 KVO 监听不到变化,自己手贱,记录一下,防止下次再踩坑。

做自己喜欢做的事。
Up骚年
Up骚年 站长 @ 十七度 创建者 17 声望
all or nothing, now or never.
1 人点赞
草芥
0 条评论
排序方式 时间 投票
快来抢占一楼吧
请登录后发表评论