UIWebView scrollView.contentSize.height未更改

问题描述 投票:4回答:2

加载html String后,qazxsw poi中scrollView的内容大小不会改变。在其他我的viewControllers一切都很好,但现在它是一些神秘的东西

我有

UIWebView

我用某种方法制作它

UIWebView *contentWebView;

早期在其他控制器- (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); ... } 帮助我,但现在它不起作用

在日志我有下一个

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

编辑

在我的另一个viewcontrollers一切都很好

contentWebView.height = contentWebView.scrollView.contentSize.height;

我有下一个

我从这个控制器得到htmlString

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

并设置在我的第一个UIWebVIew但结果 - 没有。

你可以,如果留下HelperDf.htmlString = self.fullInfoDictionary[@"content"]; 我改为YES,但结果是相同的 - 在第二种情况下一切都好 - 首先

ios objective-c uiwebview
2个回答
0
投票

你需要将contentWebView.scrollView.scrollEnabled = NO;更改为NO你的YES,如

contentWebView.scrollView.scrollEnabled

EDITED

 contentWebView.scrollView.scrollEnabled = YES;

0
投票

问题是您的视图尚未显示。您要查找的值只有在添加到视图堆栈中的视图后才可见。

在某些地方,您检查您的值时似乎没有添加您的视图。

© www.soinside.com 2019 - 2024. All rights reserved.