国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS【終極方案】精準獲取webView內容高度,自適應高度

2019-11-07 23:57:10
字體:
來源:轉載
供稿:網友

關于WebView內容高度的獲取,相信很多人都踩過坑,無法獲取到準確高度,導致頁面布局出現差錯,搜到的資料很多但都無法解決問題,以下是個人經驗總結:

項目需求實現H5文章&原生評論效果,文章是加載H5鏈接,評論信息是后臺接口提供,以列表形式展示。

實現思路:

1. webView加載H5鏈接,設置它為tableView的 headerView,下方評論信息用Cell加載展示。

2. 在webView的回調方法webViewDidFinishLoad中獲取網頁內容高度,設置為webView的高度,重新將webView賦給tableView的headerView。

Tip: 將一個View賦值給UITableView的tableHeaderView時,不需要手動設置高度,HeaderView會自動使用View的高度。

像上面這樣,類似的方法很多,無論是JS獲取,還是contentSize獲取,最后結果都難以獲取到準確高度,并非方法不行,而是:

webViewDidFinishLoad代理方法被調用時,頁面并不一定完全展現完成,可能有圖片還未加載出來,導致此時獲取的高度是偏小的,過會兒圖片加載出來后,瀏覽器會重新排版網頁被撐大,而我們之前給的高度不夠內容的展示,導致顯示異常。

問題原因已確定,解決思考:

如何能在webViewDidFinishLoad之后獲取到網頁內容高度的變化?

答案:監聽!

具體實現過程:

給webView的scrollView的contentSize屬性添加監聽,每當內容發生變化,contentSize一定會跟著變,捕獲這個變動,在監聽方法中實現webViewDidFinishLoad中的代碼,也就是獲取最新的內容高度賦給webView:

另外,在cell中使用webView獲取高度不準確的解決辦法跟上面一樣,只不過需要注意cell中使用webView涉及到cell重用,會導致滑動列表時webView多次加載,影響性能,建議緩存高度。

以上是個人經驗之談,如有雷同屬巧合,如有錯誤望指正~ by:臭碼農


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东光县| 长葛市| 静宁县| 南和县| 云梦县| 资中县| 蒙山县| 莲花县| 麻栗坡县| 长寿区| 浙江省| 平武县| 宁武县| 瓮安县| 宝坻区| 申扎县| 双柏县| 德惠市| 沧源| 礼泉县| 雅江县| 巨野县| 宜兰县| 南岸区| 余庆县| 寻乌县| 临夏市| 黄平县| 鲜城| 太原市| 乐清市| 乡宁县| 建瓯市| 潍坊市| 济阳县| 故城县| 济源市| 长丰县| 黎平县| 读书| 彰武县|