問題描述:
將WKWebView放在tableview的headerview上聚蝶,每次監(jiān)聽完都會重新刷新高度
獲取WKWebView 高度桨踪,使用KVO監(jiān)聽webview的scrollview 的“contentSize”屬性,observeValue(forKeyPath 方法在webview加載完成后會運行多次幔翰,第一次可以返回正確的高度,第二次又會返回錯誤的高度
頁面加載完成之后浪听,在進(jìn)行重新reload的時候钉蒲,如果reload的頁面高度比之前的高度少浓利,那么body.scrollHeight高度維持之前的頁面高度。contentSize高度不變導(dǎo)致頁面reload的時候出現(xiàn)大面積空白够挂。
解決辦法:
這是因為剛開始設(shè)置了webview的frame的高度為view的高度旁仿,當(dāng)webview顯示的內(nèi)容高度比webview的frame的高度小的時候,KVO監(jiān)聽仍然會再次返回webview的frame的高度孽糖,導(dǎo)致webview加載完成之后下部出現(xiàn)空白
只要將webview的初始frame的高度設(shè)置小點枯冈,KVO就能監(jiān)聽到正確的內(nèi)容高度。