iOS關(guān)于webview的自適應(yīng)行高問(wèn)題解決方案

? 最近遇到了一些有趣的問(wèn)題 分享一下 ,同時(shí)也是對(duì)自己的問(wèn)題進(jìn)行總結(jié)? ?

之前用過(guò)的webview 主要是兩種,一種是加載網(wǎng)頁(yè)? 一種是加載HTML 還有其他的 沒(méi)接觸 這里不談

這次的需求的是在原生中間加一個(gè)webview 效果如圖1.0

1.0

HTML長(zhǎng)度不確定? 這個(gè)時(shí)候就需要自適應(yīng)行高?

自適應(yīng)行高 這個(gè)問(wèn)題 可行的方案有兩種?

首先設(shè)置webview 的代理? ,有一個(gè)代理方法? 如下

- (void)webViewDidFinishLoad:(UIWebView *)webView? 這個(gè)方法里設(shè)置行高? 但是要注意一點(diǎn)? 整個(gè)視圖的行高要在這里設(shè)置? ,能在其他地方設(shè)置 要不然會(huì)有問(wèn)題 ,例如刷新行高自動(dòng)增加(我就遇到過(guò)).

自適應(yīng)行高? 第一種方法? 就是先把行高設(shè)置成0? 然后通過(guò)sizeThatFits 獲取真實(shí)行高?

CGRect frame = webView.frame;

frame.size.height = 1;

webView.frame = frame;

CGSize fittingSize = [webView sizeThatFits:CGSizeZero];

frame.size = fittingSize;

webView.frame = frame;

NSLog(@"===%f",fittingSize.height);

第二種方式? 是執(zhí)行JS語(yǔ)句 獲取行高

CGFloat webViewHeight = [[headView.webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"] floatValue];

NSLog(@"--->%.f",webViewHeight);

后來(lái)我分別用了這兩個(gè)方法? 分別發(fā)現(xiàn)了坑點(diǎn)?

后臺(tái)數(shù)據(jù)有一個(gè)HTML特別的長(zhǎng) 5000多

就是在這里出現(xiàn)了問(wèn)題?

第一次加載的時(shí)候 :

? ? ? 第一種方法 行高是1

? ? ? 第二種方法? 行高是正確行高

刷新頁(yè)面之后? :

? ? 第一種方法是正確行高?

第二種方法? JS語(yǔ)句的 行高竟然多了 50 ,就是說(shuō)整個(gè)視圖 多了一塊黑色

對(duì)于如何處理這個(gè)問(wèn)題?

第一種行高的方法 就是初始化設(shè)置一個(gè)小的行高 這個(gè)改變不了?

第二種方法 是JS注入? 本人對(duì)JS真的不懂 為什么會(huì)出現(xiàn)這個(gè)問(wèn)題? (數(shù)值會(huì)增大)真的不懂


這邊又著急上線? 情急之下 是這樣解決的

給控制器加一個(gè)屬性

@property (assign, nonatomic) BOOL isFirst;

- (void)viewDidLoad {

self.isFirst = YES;

}

代理方法里這樣寫

- (void)webViewDidFinishLoad:(UIWebView *)webView

{

CGRect frame = webView.frame;

frame.size.height = 1;

webView.frame = frame;

CGSize fittingSize = [webView sizeThatFits:CGSizeZero];

frame.size = fittingSize;

webView.frame = frame;

NSLog(@"===%f",fittingSize.height);

CGFloat webViewHeight = [[headView.webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"] floatValue];

NSLog(@"--->%.f",webViewHeight);

if ( self.isFirst? ? ) {

self.isFirst =NO;

headView.frame = CGRectMake(0, 0, kWidth, 100 +webViewHeight);

}else{

headView.frame = CGRectMake(0, 0, kWidth, 100 +fittingSize.height);

}

[self.CulturePageInfoTableView reloadData];

}


整體的思路就是? 第一次加載的時(shí)候 調(diào)用JS注入的方法? 之后調(diào)用 sizeThatFits的方法?

其實(shí) 這個(gè)只是解決問(wèn)題的方式 但是問(wèn)題的原理 不清楚 如果有知道原理的小伙伴 分享一下 謝謝 嘿嘿

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末霞扬,一起剝皮案震驚了整個(gè)濱河市构罗,隨后出現(xiàn)的幾起案子塘娶,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)仑性,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)砌创,“玉大人虏缸,你說(shuō)我怎么就攤上這事∧凼担” “怎么了刽辙?”我有些...
    開(kāi)封第一講書人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)甲献。 經(jīng)常有香客問(wèn)我宰缤,道長(zhǎng),這世上最難降的妖魔是什么晃洒? 我笑而不...
    開(kāi)封第一講書人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任慨灭,我火速辦了婚禮,結(jié)果婚禮上球及,老公的妹妹穿的比我還像新娘氧骤。我一直安慰自己,他們只是感情好吃引,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布筹陵。 她就那樣靜靜地躺著刽锤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪朦佩。 梳的紋絲不亂的頭發(fā)上并思,一...
    開(kāi)封第一講書人閱讀 51,482評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音语稠,去河邊找鬼宋彼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛仙畦,可吹牛的內(nèi)容都是我干的输涕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼议泵,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼占贫!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起先口,我...
    開(kāi)封第一講書人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎瞳收,沒(méi)想到半個(gè)月后碉京,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡螟深,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年谐宙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片界弧。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡凡蜻,死狀恐怖垢箕,靈堂內(nèi)的尸體忽然破棺而出划栓,到底是詐尸還是另有隱情,我是刑警寧澤条获,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布忠荞,位于F島的核電站,受9級(jí)特大地震影響帅掘,放射性物質(zhì)發(fā)生泄漏委煤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一修档、第九天 我趴在偏房一處隱蔽的房頂上張望碧绞。 院中可真熱鬧,春花似錦吱窝、人聲如沸讥邻。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)计维。三九已至袜香,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間鲫惶,已是汗流浹背蜈首。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留欠母,地道東北人欢策。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像赏淌,于是被迫代替她去往敵國(guó)和親踩寇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容