ios - 为什么我的 UIWebView 框架无法正确调整大小?

标签 ios xcode ios7 uiwebview xcode6

我用 XIB 做了同样的事情,它有效,但我的 Storyboard版本有问题。

这是我的 UIWebView 委托(delegate)代码

#pragma mark - UIWebViewDelegate Protocol Methods
- (void)webViewDidFinishLoad:(UIWebView *)webView {

    CGRect frame = webView.frame;
    frame.size.height = webView.scrollView.contentSize.height;
    _webView.frame = frame;

    NSLog(@"Webview Frame height is %f", _webView.frame.size.height);

    _scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width, _headerImageView.frame.size.height + webView.frame.size.height);

    NSLog(@"scrollview content height is %f", _scrollView.contentSize.height);

}

NSLog 显示正确的 webview 框架高度约为 800 点。 Scrollview 内容大小在 1000 点左右是完美的。

我的 ScrollView 设置为红色背景。所以你可以在这里看到 webview 框架在屏幕上只有大约 500 个点,其余内容被切断。

有什么想法吗?谢谢!

enter image description here

最佳答案

问题是自动布局负责 Web View 的框架和 ScrollView 的内容大小。你可以设置它们,当然如果你然后读它们,你读的是你刚刚设置的内容;但你只是在误导自己,因为然后(在你的方法之外)自动布局出现并将它们设置为真实的,而你所看到的(而不是毫无意义的 NSLog 读数)是以下结果自动布局的设置。您需要正确配置约束,以便自动布局执行您想要的操作。

.xib 文件中未启用自动布局,因此您没有遇到此行为。但它已在您的 Storyboard中打开。

关于ios - 为什么我的 UIWebView 框架无法正确调整大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26691103/

相关文章:

ios - 如何在源代码控制下将本地化添加到设置包

android - 用于移动平台外观的 Web 框架

ios - 无法使用协议(protocol)包含采用Codable的协议(protocol)

web-applications - ios 7 电话 : links not working when web app opened from home screen

ios - Phonegap 3.0 电源管理

ios - 如何在 Objective C 中使用 JS Context SetObject

iphone - 登录到 facebook 错误

xcode - 在录制音频剪辑时设置时间限制?

ios - 删除 DerivedData 文件夹后,单元测试无法编译,出现 'Apple Mach-O Linker' 错误

objective-c - NSMutableRLEArray objectAtIndex:effectiveRange::越界