iphone - 具有自动布局的 UIWebView 的动态高度

标签 iphone ios objective-c uiwebview

我在动态设置 UIWebView 的高度时遇到问题。 Web View 加载包含 html 的产品描述。我希望 UIWebView 根据描述的内容改变它的高度。父 ScrollView 也应该改变它的高度,但是基于 UIWebView 的高度。

任何人都可以向我解释如何实现我的观点的预期行为吗?

这是我的 View 层次结构:

enter image description here

最佳答案

您必须在名为 webViewDidFinishLoad 的 UIWebView 的委托(delegate)方法中添加一些代码。以下是您可以执行的操作:

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
      CGRect frame = webView.frame;
      frame.size.height = 1;
      webView.frame = frame;
      CGSize fittingSize = [webView sizeThatFits:CGSizeZero];
      frame.size = fittingSize;
      webView.frame = frame;

      NSLog(@"size: %f, %f", fittingSize.width, fittingSize.height);

      yourScrollView.contentSize = webView.bounds.size; 
}

同样的事情也可以使用 javascript 来找到正确的高度,如下所示:

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    CGRect oldBounds = [[self webView] bounds];
    CGFloat height = [[webView stringByEvaluatingJavaScriptFromString:@"document.height"] floatValue];
    NSLog(@"NEW HEIGHT %f", height);
    [webView setBounds:CGRectMake(oldBounds.origin.x, oldBounds.origin.y, oldBounds.size.width, height)];
    yourScrollView.contentSize = webView.bounds.size;
}

希望对您有所帮助!

关于iphone - 具有自动布局的 UIWebView 的动态高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18355368/

相关文章:

iphone - 为什么 UIScrollView/UITableview 不响应状态栏上的点击,并滚动到顶部?

iphone - 检查 iOS 应用程序的长期内存使用情况

iphone - UINavigationBar 顶部的自定义 Logo ?

ios - 如何为经典的 Post 和 Comment 模型构建 Parse 数据模型? (使用 iOS、Swift、Parse)

objective-c - 在 Objective-C 中保存空白文件

ios - UIButton 标题问题

iphone - 推送 UIViewController 时隐藏 UITabBarController 的标签栏

ios - 弹出回 View Controller 时 UIButton 文本不更新

iphone - kABPersonImageFormatThumbnail 不拉图像

ios - NSObject增加指针