Ios UIWebView scrollView.contentSize.height未更改
加载htmlString后,Ios UIWebView scrollView.contentSize.height未更改,ios,objective-c,uiwebview,Ios,Objective C,Uiwebview,加载htmlString后,UIWebView中scrollView的内容大小不会更改。在其他方面,我的ViewController都很好,但现在它有些神秘了 我有 UIWebView *contentWebView; 我用某种方法做到了 - (void)makeContent { ... contentWebView = [[UIWebView alloc] initWithFrame:CGRectMake(5, imageView.originY + imageView.h
UIWebView
中scrollView的内容大小不会更改。在其他方面,我的ViewController都很好,但现在它有些神秘了
我有
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代码>帮帮我,但现在不行了
在日志中我有下一个
所以我不明白为什么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];
}
我有下一个
我从这个控制器得到htmlString
HelperDf.htmlString = self.fullInfoDictionary[@"content"];
并在我的第一个UIWebVIew中设置,但结果-否
无论停留contentWebView.scrollView.scrollEnabled=no代码>我改为是,但结果相同-在第二种情况下,第一种情况下一切正常-否您需要将否
改为是
您的内容WebView.scrollView.scrollEnabled
,例如
contentWebView.scrollView.scrollEnabled = YES;
已编辑
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
[webView sizeToFit];
webView.scrollView.contentSize = CGSizeMake(320, contentWebView.scrollView.contentSize.height + 60);
}
问题是您的视图还不可见。您要查找的值仅在添加到视图堆栈中的视图后才可见
在这个过程中的某个地方,当您检查您的值时,您的视图似乎没有被添加到 是否看到我的答案?不帮助,在其他控制器中,我将此属性设置为“否”,并且我没有像现在这样的问题,我找到了答案,但您能解释一下吗?=)我写在下面这不是答案,我已经在下面贴出了正确的答案。@TheisEgeberg-你怎么能说你的答案是正确的?我的错了吗??你能解释一下吗?嗯,我试图重现他的错误,但只有在视图未添加到可见堆栈的情况下才发现它。对不起,我已对其进行了编辑以使其更具可读性。我试图重现他的错误,只有当视图不在可见视图堆栈中时才会发生。由于他的问题并不存在于所有的ViewController中,我相当肯定这就是问题所在。listencontentWebView
是一个UIWebView
,它被添加为mainView
的子视图,因此,如果你是说,mainView
没有添加到任何super视图中,那么Webview将如何显示?我已经更改了我的答案:)没有添加的不是mainView,我相信是scrollview本身。或者webview,在流程中的某个点,它还没有被添加。