7

我知道这已被问过很多次,但我无法让它发挥作用。简而言之,我的 UIWebview 引入了一些具有非固定高度(宽度始终相同)的 HTML,我只希望高度相应地改变。

我已经尝试了一些我在网上找到的修复方法,但我的问题是 webview 将更改为正确的大小,但仅持续一秒钟,然后又恢复到原始大小。

我应该指出,我的这种观点是由一个转义引起的,这是我唯一能想到的不同之处!我想知道代码是否有效,但是当 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 看起来很好,只是足够长的时间让我注意到然后“收缩”回来?

4

1 回答 1

3

任何人都知道为什么 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];

Web 视图 Springs 和 Struts 网页视图设置

于 2013-10-02T03:15:56.033 回答