UIWebView scrollView.contentSize.height未更改

时间:2013-08-16 06:49:16

标签: ios objective-c uiwebview

加载htmlString后,UIWebView中scrollView的contentSize不会更改。在其他我的viewControllers一切都很好,但现在它是神秘的

我有

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);
...
}

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

在日志中我有下一个

enter image description here

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

修改

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

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

我有下一个

enter image description here

我从这个控制器获取htmlString

HelperDf.htmlString = self.fullInfoDictionary[@"content"];

然后设置我的第一个UIWebVIew但结果 - NO。

你可以保持contentWebView.scrollView.scrollEnabled = NO;我改为YES,但结果是相同的 - 在第二种情况下,一切都好 - 没有

2 个答案:

答案 0 :(得分:0)

您需要将NO更改为YES contentWebView.scrollView.scrollEnabled,例如

 contentWebView.scrollView.scrollEnabled = YES;

<强> EDITED

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

答案 1 :(得分:0)

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

在您检查您的值时,您的视图似乎未被添加到某处。