我遇到了一个问题,比如我在Iphone中使用UIWebView,数据以HTML格式存储html数据作为astring并传递给UIWebView我很好,但是我想改变根据内容大小的UIWebView大小
- (void)viewDidLoad {
web.delegate = self;
NSString * str = [dict objectForKey:@"terms"];
[web loadHTMLString:str baseURL:nil];
}
- (void)webViewDidStartLoad:(UIWebView *)webView
{
CGRect frame = web.frame;
frame.size.height = 1;
CGSize fittingSize = [web sizeThatFits:CGSizeZero];
frame.size = fittingSize;
web.frame = frame;
NSLog(@"size: %f, %f", fittingSize.width, fittingSize.height);
web.frame = CGRectMake(10, 100, web.scrollView.contentSize.width, web.scrollView.contentSize.height);
}
答案 0 :(得分:2)
设置web view delegate
和frame
。
yourwebview.frame=[[UIScreen mainScreen] bounds];
yourwebview.delegate = self;
然后使用此委托方法设置高度。
- (void)webViewDidFinishLoad:(UIWebView *)aWebView {
CGSize contentSize = aWebView.scrollView.contentSize;
NSLog(@"webView contentSize: %@", NSStringFromCGSize(contentSize));
yourwebview.contentsize = contentSize;
}
答案 1 :(得分:1)
您可以使用委托方法webViewDidFinishLoad:
,但有时会在完全呈现HTML之前调用此方法,这会导致错误的高度值。
为了使这项工作可靠,您必须等到HTML完全呈现,然后使用Javascript将正确的高度发送到您的UIWebView。
请看一下我前段时间写的blogpost。
答案 2 :(得分:0)
使用您的网络视图的委托方法执行此操作:
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
webView.frame = CGRectMake(0, 0, webView.scrollView.contentSize.width, webView.scrollView.contentSize.height);
}