UIWebview 调整高度以适应内容
Posted
技术标签:
【中文标题】UIWebview 调整高度以适应内容【英文标题】:UIWebview resize height to fit content 【发布时间】:2013-05-08 13:11:03 【问题描述】:我知道这已经被问了很多次,但我无法让它工作。简而言之,我的 UIWebview 引入了一些具有非固定高度(宽度始终相同)的 html,我只希望高度相应地改变。
我已经尝试了一些我在网上找到的修复方法,但我的问题是 web 视图会更改为正确的大小,但只是短暂的一秒钟,然后会快速恢复到原始大小。
我应该指出,我的这种观点是由一个segue调用的,这是我唯一能想到的不同之处!我想知道代码是否有效,但是当 segue 完成时,它会淡入淡出、翻转或其他任何东西,然后重绘 webview。
这是我当前的代码(正如我所说,我已经尝试了许多修复,包括 Java 版本,其中大部分都这样做),我还使用了 scalesPageToFit 和 srollEnabled 以及 Storyboard 中的一些刻度。
-(void)webViewDidFinishLoad:(UIWebView *)webView
NSLog(@"Starting Size : %f", headerWebView.frame.size.height);
headerWebView.scalesPageToFit = YES;
headerWebView.scrollView.scrollEnabled = NO;
CGRect frame = headerWebView.frame;
frame.size.width = frame.size.width; // I used this to test, I put 200 in and it changes then flicks back too
frame.size.height = 1;
headerWebView.frame = frame;
frame.size.height = headerWebView.scrollView.contentSize.height;
headerWebView.frame = frame;
NSLog(@"Finished Size : %f", headerWebView.frame.size.height);
日志说;
起始大小:176.000000 成品尺寸:246.000000
有没有人知道为什么 Webview 看起来不错,只要足够长的时间让我注意到然后“缩小”回来?
【问题讨论】:
【参考方案1】:任何人都知道为什么 Webview 看起来足够长 让我注意到然后“收缩”回来?
我会说它看起来很好,因为您正在显示正在发生的更改。为什么不在视图生命周期的早期甚至 webViewDidFinishLoading 中隐藏 Web 视图?我从 IB 分享我的布局设置,以防提供进一步的帮助。请告知这是否有帮助或是否需要其他信息。我使用的是弹簧和支柱而不是自动布局。我会尝试这些方法,看看它是否适合你。
隐藏我的 Web 视图数据加载可防止用户在我的所有设置/数据到位之前看到任何内容。
NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
[webView setAlpha:0];
[webView loadData:[dataString dataUsingEncoding:NSUTF8StringEncoding] MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:baseURL];
[UIView animateWithDuration:0.1 animations:^
[webView setAlpha:1.0];
completion:nil];
【讨论】:
感谢您的信息,由于其他原因,我最终以另一种方式进行操作。但是,我确实关闭了自动布局并使用了弹簧和支柱,这解决了其他地方的很多问题。 @RecycledSteel - 很高兴事情成功了。您会考虑接受我的回复作为对您最初问题的回答吗?以上是关于UIWebview 调整高度以适应内容的主要内容,如果未能解决你的问题,请参考以下文章
调整 UIWebView 框架大小时如何禁用 UIWebView 调整内容大小