KVO 监听不到 WKWebView 的高度变化

19-08-29 17:26 字数 567 阅读 2018

使用 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 监听不到变化,自己手贱,记录一下,防止下次再踩坑。

1人点赞>
关注 收藏 改进 举报
0 条评论
排序方式 时间 投票
快来抢占一楼吧
请登录后发表评论
站长 @ 十七度
文章
380
粉丝
23
喜欢
190
收藏
31
排名 : 1
访问 : 127.85万
私信