我想根據HTML內容設置UIWebview的高度。我得到一個字符串的大小,但沒有得到實際的尺寸,因爲段落,粗體,不同的字體大小等如何根據html內容設置UIWebView的高度?
回答
我通常使用這些方法,設置UIWebview
框架,因爲它的內容大小:
- (void)webViewDidStartLoad:(UIWebView *)webView {
CGRect frame = webView.frame;
frame.size.height = 5.0f;
webView.frame = frame;
}
- (void)webViewDidFinishLoad:(UIWebView *)webView {
CGSize mWebViewTextSize = [webView sizeThatFits:CGSizeMake(1.0f, 1.0f)]; // Pass about any size
CGRect mWebViewFrame = webView.frame;
mWebViewFrame.size.height = mWebViewTextSize.height;
webView.frame = mWebViewFrame;
//Disable bouncing in webview
for (id subview in webView.subviews) {
if ([[subview class] isSubclassOfClass: [UIScrollView class]]) {
[subview setBounces:NO];
}
}
}
當WebView
完成加載它的內容時,它們被自動調用(如果您將webView
的代理設置爲此類)。
你爲什麼遍歷子視圖來查找滾動視圖?只需使用webView.scrollView。我也認爲你只應該在viewDidLoad中設置反彈,因爲它只需要發生一次。 (這仍然是一個很好的答案。) – griotspeak
感謝您的評論 - 好主意:)。我發佈的代碼真的很老,從滾動視圖無法直接訪問的時候開始。 –
- (void)viewDidLoad
{
[super viewDidLoad];
webview.delegate = self;
[webview loadHTMLString:@"<div id='foo' style='background: red'>The quick brown fox jumped over the lazy dog.</div>" baseURL:nil];
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSString *output = [webview stringByEvaluatingJavaScriptFromString:@"document.getElementById(\"foo\").offsetHeight;"];
NSLog(@"height: %@", output);
}
又見How to determine UIWebView height based on content, within a variable height UITableView?
但我有UIWebview在UITableView&每一行都有UIWebView所以我如何計算,因爲表格高度設置之前調用cellForRowAtIndex。 – KPIteng
試試這個代碼
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
height= [[self.webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"] floatValue];
}
那麼,每一個網站觀點有把它建成一個UIScrollView,所以我會嘗試等待頁面加載,然後點擊滾動視圖的contentSize屬性來獲取頁面的高度。
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
CGFloat height = webView.scrollView.contentSize.height;
}
在這段代碼什麼是height.it是web視圖高度的任何屬性。 –
如果你有tableviewcell web視圖,在heightForRowAtIndexPath設置單元格的高度NSAttributedString大小的高度以下。
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
NSAttributedString *attributedText = [NSString getHTMLAttributedString:@"HTML Content"];
CGSize size = CGSizeMake(300, CGFLOAT_MAX);
CGRect paragraphRect = [attributedText boundingRectWithSize:size
options:(NSStringDrawingUsesLineFragmentOrigin)
context:nil];
return paragraphRect.size.height;
}
+(NSAttributedString *) getHTMLAttributedString:(NSString *) string{
NSError *errorFees=nil;
NSString *sourceFees = [NSString stringWithFormat:
@"<span style=\"font-family: 'Roboto-Light';font-size: 14px\">%@</span>",string];
NSMutableAttributedString* strFees = [[NSMutableAttributedString alloc] initWithData:[sourceFees dataUsingEncoding:NSUTF8StringEncoding]
options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,
NSCharacterEncodingDocumentAttribute: [NSNumber numberWithInt:NSUTF8StringEncoding]}
documentAttributes:nil error:&errorFees];
return strFees;
}
- 1. 如何根據HTML內容動態改變UIWebView的高度?
- 2. 如何根據內容在可變高度UITableView內確定UIWebView高度?
- 3. 如何根據其內容設置textview的高度 - [android]
- 4. 根據內容動態設置UIScrollView高度和UITableView高度
- 5. 如何根據內容設置iframe高度?
- 6. 如何根據內容動態設置iframe高度
- 7. 如何根據內容設置SVG(根據D3.js繪製)高度?
- 8. 根據內容大小更改UIWebView的高度
- 9. 根據內容高度追加內容
- 10. 根據裏面的內容設置p元素的高度
- 11. UIWebView取內容高度iOS
- 12. 根據內容動態設置EditText的高度
- 13. 根據其內容設置塊的高度
- 14. 根據內容設置webview的動態高度iphone
- 15. 在UITableViewCell中加載UIWebView,並根據UIWebview的內容製作UITabViewCell的高度
- 16. 根據內容設置div寬度
- 17. 如何根據vb.net中的內容設置datagridview的行高
- 18. 如何根據文本塊中的內容設置UIElement的動態高度
- 19. 設置網格網格RowDefinition高度根據其在Silverlight內容
- 20. SWIFT UITableview根據內容設置自動高度 - Xcode - iOS
- 21. 如何根據寬度調整UIWebView的所有內容?
- 22. 如何根據內容以編程方式設置單元格的高度
- 23. 如何使用HTML/CSS根據內容高度放置響應式背景?
- 24. 根據節點內容設置請求的內容長度
- 25. 根據內容的QListView高度
- 26. TableView的textLabel高度根據內容
- 27. 如何根據文本內容動態設置html表格的寬度?
- 28. 如何設置側欄高度以匹配主內容高度?
- 29. 如何將標籤高度設置爲內容高度
- 30. 如何根據UITableView高度動態設置UIScrollView高度?
[你有什麼嘗試?](http://whathaveyoutried.com) – thegrinner
Webview有一個滾動,所以你可能不需要。 – alexandresoli
我在UITablView的每一行都有webview。我沒有在heightForRowAtIndexPath中獲取每行的webview高度。所以我很困惑如何在heightForRowAtIndexPath中設置每行高度。 – KPIteng