ios UIWebViewはHTML Strの図文をロードして、ピクチャーの幅の高さの設定について、webViewの内容の実際の高さのピットの問題...
8799 ワード
一.UIWebViewとWKWebViewの選択について
公開時間から見ると:
2008年7月11日、次世代iPhone 3 Gが発売された当日、iPhone OS 2.0(iOS 2.0)が発売され、UIWebViewが登場した.
WKWebViewは、2014年9月にIOS 8.0で発売された.新しく出たWKWebViewは、古いUIWebViewの最適化とアップグレードです.
WKWebViewはUIWebViewの主なメリットと比較して:より多くのHTML 5をサポートする機能 ロード進捗属性が追加されました:estimatedProgress メモリ消費量が小さく、Webページのロード速度も 大幅に向上機能細分化、より具体的に しかしIOS 8を考えると.0,UIWebViewはより強い互換性を有する.加えて、必要に応じてHTML Str+オリジナルコントロールをロードします.要求は高くありません.ここではUIWebViewを選択します.
二.ふみだめ
ピット1:htmlStrは正しく接合されていません
ヘッドをこのようにフルにするには、widthだけをスクリーン にすると、 のフィットに が し、UIWebViewを する の の さに が し、 に を す.
の に を きます:“$img[p].style.width='100%%';”すなわち100%であり、 はスクリーン である.
の さを します:“$img[p].style.height='auto'”すなわちauto、 に します.
もちろん、バックグラウンドのアップロード の を すれば、width、heightを で して することもできます.
ピット2:UIWebViewの の の さを するのは ではありません
ネット にはUIWebViewを する がたくさんあります.ブロガーは7 を したことがあります. できる2つの をお めします.
1:HTMLコンテンツのアスペクト を することにより,UIWebViewのコンテンツ さを する.
1つ があります./を いていないと、 られた さに さな があり、UIWebViewの さを さに すると、 さくなってしまいます.リフレッシュアップロードを み わせると、 にもUIWebViewの に い が されます( い のように えますが、 による です)
2: 、 きさを えず、 の さを し、 られた さは の さより きくなり、 Bugが れず、 に する.
sizeToFitとsizeThatFitsを げると、 の くはこの2つを できないので、このように できます.
コントロールsizeToFitの 、 すると、コントロールの の が わり、 は を めるために されます.
、sizeThatFitsは、コントロールを する なSizeであり、コントロールは されません.このSizeはあなたが に うのか、それが する です.
ピット3:アイテムを アップロードする がある 、ドロップダウンして しいHtmlStrをリフレッシュすると、 さがエラーになります.
は、UIWebViewが にキャッシュし、 しいHtmlStrを ロードすることです.キャッシュのため、 した さになり、 になります.
として、UIWebViewの ロード にキャッシュをクリアします.
:https://www.cnblogs.com/zhouDongdong/p/11202979.html
公開時間から見ると:
2008年7月11日、次世代iPhone 3 Gが発売された当日、iPhone OS 2.0(iOS 2.0)が発売され、UIWebViewが登場した.
WKWebViewは、2014年9月にIOS 8.0で発売された.新しく出たWKWebViewは、古いUIWebViewの最適化とアップグレードです.
WKWebViewはUIWebViewの主なメリットと比較して:
二.ふみだめ
ピット1:htmlStrは正しく接合されていません
NSString *strHTML = _textDic[@"content"];
NSString *str = [NSString stringWithFormat:@"
"
"
"
"
"
"
"
""
" "
"window.onload = function(){
"
"var $img = document.getElementsByTagName('img');
"
"for(var p in $img){
"
" $img[p].style.width = '100%%';
"
"$img[p].style.height ='auto'
"
"}
"
"}"
"%@"
""
"",strHTML];
[self.webView loadHTMLString:str baseURL:nil];
ヘッドをこのようにフルにするには、widthだけをスクリーン にすると、 のフィットに が し、UIWebViewを する の の さに が し、 に を す.
の に を きます:“$img[p].style.width='100%%';”すなわち100%であり、 はスクリーン である.
の さを します:“$img[p].style.height='auto'”すなわちauto、 に します.
もちろん、バックグラウンドのアップロード の を すれば、width、heightを で して することもできます.
ピット2:UIWebViewの の の さを するのは ではありません
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
webView.scrollView.scrollEnabled = NO;
webView.scrollView.showsVerticalScrollIndicator = NO;
webView.scrollView.showsHorizontalScrollIndicator = NO;
// 1
// NSString *htmlHeight = [webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"];
// NSString *htmlWidth = [webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollWidth"];
// float i = [htmlWidth floatValue]/[htmlHeight floatValue];
// float height = ScreenWidth/I;
// 2
CGSize fittingSize = [webView sizeThatFits:CGSizeZero];
CGFloat height = fittingSize.height;
_webView.frame = CGRectMake(0, 0, ScreenWidth, height);
}
ネット にはUIWebViewを する がたくさんあります.ブロガーは7 を したことがあります. できる2つの をお めします.
1:HTMLコンテンツのアスペクト を することにより,UIWebViewのコンテンツ さを する.
1つ があります./を いていないと、 られた さに さな があり、UIWebViewの さを さに すると、 さくなってしまいます.リフレッシュアップロードを み わせると、 にもUIWebViewの に い が されます( い のように えますが、 による です)
2: 、 きさを えず、 の さを し、 られた さは の さより きくなり、 Bugが れず、 に する.
sizeToFitとsizeThatFitsを げると、 の くはこの2つを できないので、このように できます.
コントロールsizeToFitの 、 すると、コントロールの の が わり、 は を めるために されます.
、sizeThatFitsは、コントロールを する なSizeであり、コントロールは されません.このSizeはあなたが に うのか、それが する です.
ピット3:アイテムを アップロードする がある 、ドロップダウンして しいHtmlStrをリフレッシュすると、 さがエラーになります.
は、UIWebViewが にキャッシュし、 しいHtmlStrを ロードすることです.キャッシュのため、 した さになり、 になります.
として、UIWebViewの ロード にキャッシュをクリアします.
if (_webView) {
_webView = nil;
[self cleanCacheAndCookie];
}
/** cookie*/
- (void)cleanCacheAndCookie{
// cookies
NSHTTPCookie *cookie;NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (cookie in [storage cookies]){[storage deleteCookie:cookie];}
// UIWebView
[[NSURLCache sharedURLCache] removeAllCachedResponses];
NSURLCache * cache = [NSURLCache sharedURLCache];
[cache removeAllCachedResponses];
[cache setDiskCapacity:0];
[cache setMemoryCapacity:0];
}
:
, , 。
Bug , , 。
:
1.iOS webview
2.iOS 3—UIWebView WKWebView
3.iOS HTML UIWebView
:https://www.cnblogs.com/zhouDongdong/p/11202979.html