在 iOS 5 上,UIWebView 报告滚动视图的内容大小错误

2024-01-10

我已经尝试了很多“解决方案”,但现在我正在尝试计算 UIWebView 的滚动视图的内容大小。目前它总是返回 1024,这是设备的宽度。这是没有意义的,因为我正在查询高度并且视图是纵向的。

以下代码将高度报告为 1024.00000

-(void)webViewDidFinishLoad:(UIWebView *)webView {

  float sourcesWebViewHeight = [[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.scrollHeight"] floatValue];

  NSLog(@"%f", sourcesWebViewHeight);

}

但我只有几行文字。


我将分解最终为我解决这个问题的原因。

我必须将我的内容包含在其中。

<html><head><meta name=\"viewport\" content=\"initial-scale=1, user-scalable=no, width=device-width\" /></head><body>%@</body></html>

实现以下视图确实加载。

-(void)webViewDidFinishLoad:(UIWebView *)webView {

  [self layoutSubviews];

  webView.scrollView.scrollEnabled = NO;    // Property available in iOS 5.0 and later
  CGRect frame = webView.frame;


  frame.size.height = 1;        // Set the height to a small one.

  webView.frame = frame;       // Set webView's Frame, forcing the Layout of its embedded scrollView with current Frame's constraints (Width set above).

  frame.size.height = webView.scrollView.contentSize.height;  // Get the corresponding height from the webView's embedded scrollView.

  webView.frame = frame;





}

and

-(void) layoutSubviews {
  [super layoutSubviews];
  [body stringByEvaluatingJavaScriptFromString:
   [NSString stringWithFormat:
    @"document.querySelector('meta[name=viewport]').setAttribute('content', 'width=%d;', false); ",
    (int)body.frame.size.width]];
}

最后,我的网络视图做了所有正确的事情来根据内容进行缩放。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 iOS 5 上,UIWebView 报告滚动视图的内容大小错误 的相关文章

随机推荐

  • 在 PyTorch 中加速 SVD

    我正在使用 Pytorch 为 CIFAR10 执行一些分类任务 对于每次迭代 我都必须对每个批次进行一些预处理 然后才能将其反馈给模型 以下是每个批次的预处理部分的代码 S torch zeros batch size C H W for
  • Python 定义迭代器类失败,并显示“iter() 返回了‘Fib’类型的非迭代器”

    我正在使用 python 2 7 和 ipython2 7 在 ipython 中我尝试过 class Fib object def init self max super Fib self init self max max def it
  • 在 Magento 中获取基本产品图像

    我想要得到baseMagento 中的产品图像可调整其大小并显示在购物车侧边栏中 不幸的是 echo this gt helper catalog image gt init product image gt resize 38 38 打印
  • MSIE 9 中的“GET”ting AngularJS 资源返回空数组

    Problem 当使用GET来自一个的请求 resource 仅在 Microsoft Internet Explorer 9 中 成功的响应是空数组 Tests 成功场景 使用 FF 或 Chrome GET请求返回开发环境和本地环境中的
  • 包装应用

    我们有一个 Windows 应用程序 我们使用 Wise 进行部署 最近我们改用InstallAware 虽然它有一些优点 但我们面临一些问题 有人可以推荐另一个部署和打包应用程序吗 我们是一家小公司 没有专门的人员进行打包等工作 我们的软
  • kubernetes 秘密在环境变量中有尾随空格

    我在 GKE 上运行的 Kubernetes 1 9 中创建了一个部署 该部署利用了放入环境变量中的机密 我使用 yaml 文件将机密上传到 GKE 其中机密经过 Base64 编码 我在容器中看到的是环境变量在那里 但值包含尾随空格 如果
  • 为什么 sockaddr_in 中需要零填充?

    我用谷歌搜索了一下 有些人说 与 struct sockaddr 保持相同的大小 但内核不会直接使用 sockaddr 对吗 使用时 内核会将其恢复到原来的样子 那么为什么需要零填充呢 struct sockaddr unsigned sh
  • 实体框架 - 无效的列名称“*_ID”

    我已将问题范围缩小到 Code First 和 Database First EF 之间的某个问题 但我不确定如何修复它 我会尽力说得清楚 但老实说 我自己也缺少一些理解 这是实体框架 4 4 我继承了一个使用实体框架的项目 但许多实际文件
  • Cloud Pub/Sub:即使注册域名后,HTTP URL 也未注册

    我有一个 Google Pub Sub 项目 并创建了一个主题和一个简单的订阅 但是 当指定推送的 URL 时 我不断收到以下错误 我已完成站点验证过程并在 API 和服务中注册了域 如中所述https cloud google com p
  • 为什么 PHP 将字母 E 的字符串转换为数字?

    为什么下面的语句会返回true 608E 4234 272E 3063 我也尝试过在字符串周围使用单引号 我可以让它评估的唯一方法false是通过使用 运算符而不是 我的猜测是 PHP 将其视为某种方程式 但这似乎有点奇怪 有人可以详细说明
  • 在Java中一次导入所有子包[重复]

    这个问题在这里已经有答案了 Java中是否可以一次性导入所有子包 据我所知 这在 C 中似乎是可能的 C 如何一次性导入命名空间 https stackoverflow com questions 4806986 c how to impo
  • ASP.NET Core Identity 中基于临时会话的声明

    在 ASP NET Core Identity 中添加声明非常简单 但我无法找到如何添加基于临时会话的声明 我的用例是这样的 具有自己的自定义声明的登录用户需要定期添加新声明 但仅限于当前会话 而不是持久化到数据库 当他们关闭浏览器或退出后
  • 如何从 plist 文件中提取字符串进行翻译(本地化)?

    我需要准备用于翻译 iPhone 应用程序的字符串列表 我已经从中提取了字符串使用 genstring 的 m 文件 and 使用 ibtool 从 XIB 文件中命令 但我也有plist 文件中需要翻译大量文本 字符串字段类型包含在str
  • 用 Ninject 拦截。无法加载 IProxyRequestFactory

    我正在学习使用 Ninject 和 Interceptor 模式 我有以下拦截器 public class MyInterceptor IInterceptor public void Intercept IInvocation invoc
  • 什么是好的头像电子邮件示例?

    在 Ember js 文档中看到类似的演示后 我刚刚做了一个演示 该演示根据您的电子邮件获取您的头像 我目前正在使用 电子邮件受保护 cdn cgi l email protection作为默认值 但这似乎是错误的 因为它是一个 React
  • ruby 的 3D 引擎是什么

    我正在寻找用于开发 ruby 游戏的 3D 引擎 我发现了一些像 G3Druby 或 ogrerb 的东西 哪一个更好用并且功能更好 还有其他发动机比这些更好吗 两者似乎都是 G3D 和 Ogre 的包装 因此您实际上应该比较 G3D 或
  • 使用最小起订量测试对私有方法的调用

    我有以下方法需要用最小起订量进行测试 问题是 switch 语句中调用的每个方法都是私有的 包括最后的 PublishMessage 但这个方法 ProcessMessage 是公共的 我如何测试这一点 以便确保根据参数进行调用 请注意 我
  • 如何顺序调用延迟函数?

    My code
  • 导航器路线 清除 flutter 堆栈

    在我的应用程序中 我有三个屏幕 loginverifyotp generatepress 我知道如何从一个页面移动到另一页面 例如 Navigator pushNamed context theNameOfThePage 我有一个从登录 g
  • 在 iOS 5 上,UIWebView 报告滚动视图的内容大小错误

    我已经尝试了很多 解决方案 但现在我正在尝试计算 UIWebView 的滚动视图的内容大小 目前它总是返回 1024 这是设备的宽度 这是没有意义的 因为我正在查询高度并且视图是纵向的 以下代码将高度报告为 1024 00000 void