本篇文章為大家展示了怎么在iOS中計算WebView的高度,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
我們提供的服務有:網站制作、成都網站制作、微信公眾號開發、網站優化、網站認證、永善ssl等。為數千家企事業單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的永善網站制作公司獲取最新的內容高度賦給webView:
//添加監聽 [_WebView.scrollView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:@"WejinWuLiuViewController"];
//監聽回調 - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context{ if ([keyPath isEqualToString:@"contentSize"]) { _webViewHeight = [_WebView.scrollView contentSize].height; CGRect newFrame = _WebView.frame; newFrame.size.height = _webViewHeight; _WebView.frame = newFrame; } }
iOS開發之解決WebView自適應內容高度
首先如果直接進行內容展示,或者進行sizeToFit的操作,那么可能會造成圖片超過屏幕大小,字體變得很小的結果,所以這里用到了UIWebView的delegate方法和添加了html的標簽語言,使用了javascript操作方法。具體可以研究代碼,如下:
//web -(UIWebView *)detailWebView { if (_detailWebView == nil) { _detailWebView = [UIWebView new]; _detailWebView.delegate = self; _detailWebView.scrollView.bounces = NO; _detailWebView.scrollView.showsHorizontalScrollIndicator = NO; _detailWebView.scrollView.scrollEnabled = NO; _detailWebView.dataDetectorTypes = UIDataDetectorTypeAll; [_detailWebView sizeToFit]; } return _detailWebView; }
NSString *htmlcontent = [NSString stringWithFormat:@"<head><style>img{max-width:%fpx !important;}</style></head><div id=\"webview_content_wrapper\">%@</div>",f_Device_w-30,detailDic[@"content"]]; [_detailWebView loadHTMLString:htmlcontent baseURL:nil];
#pragma mark ----- webView 的 delegate - (void)webViewDidFinishLoad:(UIWebView *)webView { //獲取頁面高度(像素) NSString * clientheight_str = [webView stringByEvaluatingJavaScriptFromString: @"document.body.offsetHeight"]; float clientheight = [clientheight_str floatValue]; //設置到WebView上 webView.frame = CGRectMake(15, _whereNewsLabel.bottom+10, f_Device_w-30, clientheight); //下面這樣寫就是獲取到比較準確的內容高度,不需要再進行其他計算了 //獲取內容實際高度(像素) NSString * height_str= [webView stringByEvaluatingJavaScriptFromString: @"document.getElementById('webview_content_wrapper').offsetHeight + parseInt(window.getComputedStyle(document.getElementsByTagName('body')[0]).getPropertyValue('margin-top')) + parseInt(window.getComputedStyle(document.getElementsByTagName('body')[0]).getPropertyValue('margin-bottom'))"]; float height = [height_str floatValue]; //再次設置WebView高度(點) webView.frame = CGRectMake(15, _whereNewsLabel.bottom+10, f_Device_w-30, height); if ([self.delegate respondsToSelector:@selector(backWebViewWithHeight:)]) { [self.delegate backWebViewWithHeight:webView.bottom+5]; } }
上述內容就是怎么在iOS中計算WebView的高度,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注創新互聯網站建設公司行業資訊頻道。
另外有需要云服務器可以了解下創新互聯建站vcdvsql.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網站名稱:怎么在iOS中計算WebView的高度-創新互聯
本文網址:http://vcdvsql.cn/article44/didpee.html
成都網站建設公司_創新互聯,為您提供品牌網站建設、小程序開發、營銷型網站建設、響應式網站、網站排名、App開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯