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

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

項目需求實現(xiàn)H5文章&原生評論效果牡属,文章是加載H5鏈接逮栅,評論信息是后臺接口提供悴势,以列表形式展示。

實現(xiàn)思路:

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

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

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

http://upload-images.jianshu.io/upload_images/743749-6ee2538af7a02af2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240

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

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

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

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

答案:監(jiān)聽币砂!

具體實現(xiàn)過程:

http://upload-images.jianshu.io/upload_images/743749-91462536dd5d2a26.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240

給webView的scrollView的contentSize屬性添加監(jiān)聽,每當內容發(fā)生變化玻侥,contentSize一定會跟著變决摧,捕獲這個變動,在監(jiān)聽方法中實現(xiàn)webViewDidFinishLoad中的代碼凑兰,也就是獲取最新的內容高度賦給webView:

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末则拷,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子曹鸠,更是在濱河造成了極大的恐慌煌茬,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件彻桃,死亡現(xiàn)場離奇詭異坛善,居然都是意外死亡,警方通過查閱死者的電腦和手機邻眷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進店門眠屎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人肆饶,你說我怎么就攤上這事组力。” “怎么了抖拴?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵燎字,是天一觀的道長。 經常有香客問我阿宅,道長候衍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任洒放,我火速辦了婚禮蛉鹿,結果婚禮上,老公的妹妹穿的比我還像新娘往湿。我一直安慰自己妖异,他們只是感情好惋戏,可當我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著他膳,像睡著了一般响逢。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上棕孙,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天舔亭,我揣著相機與錄音,去河邊找鬼蟀俊。 笑死钦铺,一個胖子當著我的面吹牛,可吹牛的內容都是我干的肢预。 我是一名探鬼主播矛洞,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼烫映!你這毒婦竟也來了缚甩?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤窑邦,失蹤者是張志新(化名)和其女友劉穎擅威,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體冈钦,經...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡郊丛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了瞧筛。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片厉熟。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖较幌,靈堂內的尸體忽然破棺而出揍瑟,到底是詐尸還是另有隱情,我是刑警寧澤乍炉,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布绢片,位于F島的核電站,受9級特大地震影響岛琼,放射性物質發(fā)生泄漏底循。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一槐瑞、第九天 我趴在偏房一處隱蔽的房頂上張望熙涤。 院中可真熱鬧,春花似錦、人聲如沸祠挫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽等舔。三九已至骚灸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間软瞎,已是汗流浹背逢唤。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工拉讯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留涤浇,地道東北人。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓魔慷,卻偏偏與公主長得像只锭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子院尔,可洞房花燭夜當晚...
    茶點故事閱讀 45,630評論 2 359

推薦閱讀更多精彩內容