Tôi muốn đặt chiều cao của UIWebview dựa trên nội dung HTML. Tôi nhận được kích thước của một chuỗi, nhưng không nhận được kích thước thực tế do đoạn, đậm, khác nhau kích thước font chữ, vvCách đặt chiều cao UIWebView dựa trên nội dung html?
Trả lời
Tôi thường sử dụng phương pháp này, để thiết lập UIWebview
khung như đó là kích thước nội dung:
- (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];
}
}
}
Chúng được gọi tự động (nếu bạn đặt đại biểu của webView
cho lớp này), khi WebView
đã tải xong nội dung của nó.
Tại sao bạn lặp lại qua các bản xem trước để tìm chế độ xem cuộn? chỉ cần sử dụng webView.scrollView. Tôi cũng nghĩ rằng bạn chỉ nên đặt thư bị trả lại trong viewDidLoad vì nó chỉ cần xảy ra một lần. (Nó vẫn là một câu trả lời tốt.) – griotspeak
Cảm ơn nhận xét - ý tưởng hay :). Mã tôi đã đăng thực sự cũ, từ thời điểm scrollview không thể truy cập trực tiếp. –
- (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);
}
cũng thấy How to determine UIWebView height based on content, within a variable height UITableView?
Nhưng tôi có UIWebview trong UITableView và mỗi hàng có UIWebView vì vậy làm thế nào tôi tính toán vì chiều cao bảng thiết lập trước khi cellForRowAtIndex gọi. – KPIteng
Hãy thử mã này
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
height= [[self.webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"] floatValue];
}
Vâng, mỗi xem web có một UIScrollView xây dựng vào nó, vì vậy tôi sẽ cố gắng chờ đợi cho các trang để tải và sau đó chạm vào contentSize của chế độ xem của cuộn để có chiều cao của trang.
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
CGFloat height = webView.scrollView.contentSize.height;
}
trong mã này chiều cao là gì. Bất kỳ thuộc tính nào cho chiều cao xem web. –
Nếu bạn có webview trong tableviewcell, trong heightForRowAtIndexPath thiết lập chiều cao của tế bào để chiều cao của kích thước NSAttributedString như sau.
-(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. Nhận nội dung của UIWebView Chiều cao
- 2. Chiều cao tế bào UITableView động Dựa trên nội dung
- 3. Chiều cao nội dung UIWebView không chính xác trong scrollview.contentsize
- 4. UIWebView - Giới hạn chiều rộng nội dung
- 5. Cách hiển thị nội dung html trên UIWebView IOS
- 6. chiều cao: 100% hoặc chiều cao tối thiểu: 100% cho phần tử html và nội dung?
- 7. Xác định chiều cao UIWebView dựa trên nội dung động của địa phương, trong một chiều cao có thể thay đổi TableViewCell
- 8. Cách đặt div cố định chiều cao nhưng tăng nếu nội dung lớn hơn chiều cao?
- 9. Thay đổi kích thước chiều cao UIWebView để phù hợp với nội dung
- 10. Chiều cao động của UIWebView với bố cục tự động
- 11. Làm thế nào để tăng chiều cao hàng trong NSTableView dựa trên nội dung văn bản?
- 12. Chiều cao thay đổi kích thước UIWebview để phù hợp với nội dung
- 13. Tự động định kích thước một UIWebView dựa trên kích thước phông chữ nội dung
- 14. chiều cao tối thiểu không hoạt động với nội dung
- 15. Đặt chiều cao DIV động dựa trên chiều cao khung nhìn
- 16. Express: Đặt loại nội dung dựa trên đường dẫn/tệp?
- 17. Đặt nền của DataGridRow dựa trên nội dung của ô
- 18. Nhận văn bản dựa trên chiều cao
- 19. Chuyển nội dung UIWebview thành UIImage
- 20. Điều chỉnh dựa trên nội dung
- 21. Đặt chiều rộng của một WebView để bọc nội dung HTML?
- 22. Quy tắc CSS dựa trên nội dung
- 23. Cách đặt Loại nội dung trên HttpURLConnection?
- 24. Làm cách nào để thay đổi chiều cao của iframe dựa trên conent động trong iframe?
- 25. Android: Đặt chiều cao nút trong XML dựa trên chiều rộng của nó
- 26. iOS - Đổi kích thước UIWebView để vừa với nội dung?
- 27. Chiều rộng và chiều cao của giao diện người dùng jQuery dựa trên chiều rộng và chiều cao màn hình
- 28. Đặt chiều cao tối đa cho nội dung của ô trong bảng
- 29. Android ScrollView đặt chiều cao cho nội dung được hiển thị
- 30. Setting của nội dung ô trong bảng dựa trên chiều rộng có sẵn
[Bạn đã thử gì?] (Http://whathaveyoutried.com) – thegrinner
Chế độ xem web có một cuộn, vì vậy bạn có thể không cần điều đó. – alexandresoli
Tôi có chế độ xem web trong mỗi hàng trong UITablView. Tôi không nhận được chiều cao xem web của mỗi hàng tại heightForRowAtIndexPath. Vì vậy, tôi nhầm lẫn làm thế nào để thiết lập Mỗi chiều cao hàng trong heightForRowAtIndexPath. – KPIteng