UIWebView scrollView.contentSize.height 没有改变

Max*_*mus 5 objective-c uiwebview ios

加载 htmlString 后,scrollView 的 contentSize 不变UIWebView。在其他我的 viewControllers 都很好,但现在有点神秘

我有

UIWebView *contentWebView;
Run Code Online (Sandbox Code Playgroud)

我用某种方法做到了

- (void)makeContent
{
    ...
    contentWebView = [[UIWebView alloc] initWithFrame:CGRectMake(5, imageView.originY + imageView.height + 5, mainView.width - 10, 100)];
    contentWebView.delegate = self;
    contentWebView.scrollView.scrollEnabled = NO;
    contentWebView.contentMode = UIViewContentModeScaleAspectFit;
    NSLog(@"%@", factDict[@"text"]);
    [contentWebView loadHTMLString:factDict[@"text"] baseURL:nil];
    contentWebView.height = contentWebView.scrollView.contentSize.height;
    [mainView addSubview:contentWebView];
}

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    NSLog(@"%f %f %f %f ", webView.height, webView.scrollView.contentSize.height, contentWebView.height, contentWebView.scrollView.contentSize.height);
    [webView sizeToFit];
    NSLog(@"%f %f %f %f ", webView.height, webView.scrollView.contentSize.height, contentWebView.height, contentWebView.scrollView.contentSize.height);
...
}
Run Code Online (Sandbox Code Playgroud)

早期的其他控制器contentWebView.height = contentWebView.scrollView.contentSize.height;帮助我,但现在它不起作用

在日志中我有下一个

在此处输入图片说明

所以我不明白为什么 contentsize.height 没有改变

编辑

在我的另一个视图控制器中一切都很好

- (void)makeScrollView
{
    CGFloat width = [Utils widthOfMainViewForOrientation:self.interfaceOrientation];
    [mainView removeFromSuperview];
    mainView = [[UIView alloc] initWithFrame:CGRectMake((self.view.width - width) / 2, 15, width, 100)];
    mainView.backgroundColor = [UIColor whiteColor];
    if ([self.fullInfoDictionary[@"content"] length]) {
        contentWebView = [[UIWebView alloc] initWithFrame:CGRectMake(6, 4, mainView.width - 12, 100)];
        contentWebView.contentMode = UIViewContentModeScaleAspectFit; 
        contentWebView.delegate = self;
        HelperDf.htmlString = self.fullInfoDictionary[@"content"];
        [contentWebView loadHTMLString:self.fullInfoDictionary[@"content"] baseURL:nil];
        contentWebView.scrollView.scrollEnabled = NO;
        [mainView addSubview:contentWebView];
    }
    [self.scrollView addSubview:mainView];
}

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    contentWebView.height = contentWebView.scrollView.contentSize.height;
    NSLog(@"%f %f %f %f", webView.height, webView.scrollView.contentSize.height, contentWebView.height, contentWebView.scrollView.contentSize.height);
    [self reloadFrames];
}
Run Code Online (Sandbox Code Playgroud)

我有下一个

在此处输入图片说明

我从这个控制器得到 htmlString

HelperDf.htmlString = self.fullInfoDictionary[@"content"];
Run Code Online (Sandbox Code Playgroud)

并在我的第一个 UIWebVIew 中设置但结果 - 否。

你可以不管contentWebView.scrollView.scrollEnabled = NO;我是否留下来我改为是,但结果是一样的 - 在第二种情况下,第一种情况都很好 - 不

iPa*_*tel 0

你需要改变你的NO,比如YEScontentWebView.scrollView.scrollEnabled

 contentWebView.scrollView.scrollEnabled = YES;
Run Code Online (Sandbox Code Playgroud)

编辑

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    [webView sizeToFit];
    webView.scrollView.contentSize = CGSizeMake(320, contentWebView.scrollView.contentSize.height + 60);
} 
Run Code Online (Sandbox Code Playgroud)