2013-05-14 80 views
7

我知道这已经被问了很多次,但我无法得到它的工作。总之,我的UIWebview引入了一些没有固定高度的HTML(宽度总是相同),我只是希望高度相应地改变。的UIWebView调整高度,以适应内容

我已经尝试了一些修正我已经在网上找到的,但我的问题是web视图会更改为正确的尺寸,但只短短的一秒钟,然后笔触回原来的大小。

我应该指出的是,我的这一观点是由SEGUE调用,这是我能想到的唯一的事情是不同的!我想知道如果代码的作品,但当赛格完成交叉淡入淡出,翻转或任何它然后重绘web视图。

这里是我当前的代码(正如我所说的,我已经尝试了很多修复,包括其中大部分都是相同的Java版本),我也玩过了scalesPageToFit和srollEnabled以及Storyboard中的一些tick。

-(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

任何人有一个想法,为什么web视图显示正常只是足够长的时间,我注意到,然后“缩水”了?

回答

3

任何人都有一个想法,为什么Webview似乎罚款足够长的 让我注意到,然后“收缩”回来?

我会说它看起来很好,因为你正在发生的变化,因为他们正在发生。为什么不在视图生命周期的某个早期点甚至在webViewDidFinishLoading中隐藏Web视图?如果可能会提供进一步的帮助,我将从IB分享我的布局设置。请告知这是否有帮助或是否需要其他信息。我使用弹簧和支柱而不是自动布局。我会尝试这些方法,看看它是否适合你。

隐藏我的网络视图数据加载阻止用户看到任何东西,直到我的所有设置/数据都到位。

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]; 

Web View Springs and Struts Web View Settings

+0

感谢信息,其他原因我最终做的另一种方式。但是,我确实关闭了自动布局,并使用弹簧支柱来解决其他许多问题。 – 2013-10-02 09:14:19

+0

@RecycledSteel - 高兴的事情解决了。你会考虑接受我的回答作为你原来问题的答案吗? – 2013-10-02 10:21:41