使用 'document.body.scrollHeight;' 计算 UIWebView 内容动态高度在 iOS 10 中返回更大的值

2024-02-09

我正在使用 Objective C 创建一个应用程序,其中我使用的是UIWebView以 HTML 格式显示内容。我正在使用下面的代码UIWebView委托方法webViewDidFinishLoad

NSUInteger contentHeight = [[aWebView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.body.scrollHeight;"]] intValue];

计算 webview 内容高度,这在iOS8, iOS9 and iOS11 but in iOS10iPhone 移动内容高度返回的值比实际内容值大得多。因此,我在屏幕中的网络视图底部出现了一些额外的空白区域。

我尝试了所有解决方案,但仅在 iOS 10 中得到相同的错误内容高度。请帮助我解决此问题。先感谢您!


我使用以下方法来获取 contentSize。

我在 webview 的滚动视图上添加了观察者(KVO)。

self.webView.scrollView.addObserver(self, forKeyPath: "contentSize", options: .new, context: nil);

现在,每当 webview 的 contentsize 发生变化时,我都会在这个方法中得到回调

override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
}

现在从此方法中获取对象的 contentSize 并使用它。

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

使用 'document.body.scrollHeight;' 计算 UIWebView 内容动态高度在 iOS 10 中返回更大的值 的相关文章

  • 如何向标准 UIButton 添加徽章? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 是否可以在标准中添加看起来标准的徽章UIButton 如果不支持半原生 那么实现此目的最简单的方法是什么 示例图片 这是 Sascha
  • 为什么是 javascript:history.go(-1);无法在移动设备上工作?

    首先 一些背景 我有一个向用户呈现搜索页面 html 表单 的应用程序 填写标准并单击 搜索 按钮后 结果将显示在标准部分下方 在结果列表中 您可以通过单击将您带到新页面的链接来查看单个结果的详细信息 在详细信息页面中 我添加了一个 返回结
  • 如何在代码中编辑约束

    我有一个以 100 开始宽度限制的网页 当用户单击按钮时 我想将约束更改为 200 我试过这个 NSLayoutConstraint constrain NSLayoutConstraint constraintWithItem self
  • 在requestAnimationFrame中使用clearRect不显示动画

    我正在尝试在 HTML5 画布上做一个简单的 javascript 动画 现在我的画布是分层的 这样当我收到鼠标事件时 背景层不会改变 但带有头像的顶层会移动 如果我使用 requestAnimationFrame 并且不清除屏幕 我会看到
  • Jquery/Javascript 上传和下载文件,无需后端

    是否可以在没有后端服务器的情况下在 JavaScript 函数中下载和上传文件 我需要导出和导入由 JavaScript 函数生成的 XML 我想创建按钮 保存 xml 来保存文件 但我不知道是否可行 另一方面 我希望将 XML 文件直接上
  • 在 webpack 2.x 中使用 autoprefixer 和 postcss

    如何使用autoprefixer使用 webpack 2 x 以前 它曾经是这样的 module loaders test scss loader style css sass postcss postcss gt return autop
  • 使用 MapKit 的地形和卫星视图

    我是 Mapkit View 的新手 当我给出没有目的地的纬度和经度时 我想显示 MapKit中是否可以通过地形 卫星视图来显示地图 有教程链接吗 我看过一些访问 Google 地图 API html 文件 的示例 有必要吗 或者您可以通过
  • Electron - 为什么在关闭事件时将 BrowserWindow 实例设置为 null

    The 电子文档 https electronjs org docs api browser window 提供以下代码示例来创建新窗口 const BrowserWindow require electron let win new Br
  • 如何使用tampermonkey模拟react应用程序中的点击?

    我正在尝试使用 Tampermonkey 脚本模拟对 React 元素的点击 不幸的是 由于 React 有自己的影子 DOM 所以天真的方法使用document querySelector 不工作 我遇到了一些需要修改 React 组件本
  • HTML 离线应用程序缓存,列出下载的文件

    作为我正在构建的离线 Web 应用程序的加载屏幕的一部分 使用缓存清单 http developer apple com library safari documentation iPhone Conceptual SafariJSData
  • 如何在类似控制台的环境中运行 JavaScript?

    我正在尝试遵循这里的示例 http eloquentjavascript net chapter2 html http eloquentjavascript net chapter2 html and print blah 在浏览器中运行时
  • 在 vue.js 中访问数组对象属性

    给定以下数组vue js packageMaps Object packageMap 0 Object Id 16 PackageType flag list ProductCode F BannerBase packageMap 1 Ob
  • 在 Swift 中从 Parse 加载图像

    我成功地将数据从 Parse 提取到 swift 中 但我的图像似乎没有按照我的方式工作 在我的 cellForRowAtIndexPath 方法中 我执行以下操作 var event AnyObject eventContainerArr
  • CoreBluetooth:检测设备超出范围/连接超时

    我正在设计一个 iOS 框架来处理多个 BLE 设备 均为同一类型 目前一切都运行良好 除了一件事 客户想要一个包含可用设备的列表 但是 我如何检测过去发现的设备何时不再可用 当我尝试连接到不再可用的设备时 会出现另一个问题 文档说 连接尝
  • 为什么 Objective-C 允许在方法定义末尾使用分号? [复制]

    这个问题在这里已经有答案了 可能的重复 Objective C 实现文件中方法名后面的分号 https stackoverflow com questions 5678360 semicolon after the method name
  • 为什么 jquery 没有检测到单选按钮未被选中的情况? [复制]

    这个问题在这里已经有答案了 可能的重复 JQuery radioButton change 在取消选择期间不会触发 https stackoverflow com questions 5176803 jquery radiobutton c
  • 在 React.js 中编辑丰富的数据结构

    我正在尝试为数据结构创建一个简单的基于网格的编辑器 但我在使用 React js 时遇到了一些概念问题 他们的文档对此没有太大帮助 所以我希望这里有人可以提供帮助 首先 将状态从外部组件传输到内部组件的正确方法是什么 是否有可能将内部组件中
  • 如何为 UIImageView 随机化器实现滑动手势

    我一直在浏览大量的教程和问题 但似乎找不到我要找的东西 我有一种感觉 我只是错过了一个简单的步骤 我仍在学习诀窍 所以请承受和我一起做这个 我正在 xcode 4 3 3 上制作图像随机化器 并且我已经能够使用按钮来随机化图像 但我希望它能
  • 更改 iOS7 中 UIAlertView 的字体大小

    我想更改alertView中消息文本和标题文本的字体大小 苹果网站上没有任何文档谈到这一点 但苹果在其子类注释中表示 UIAlertView 类旨在按原样使用 请参考以下链接 https developer apple com librar
  • fullCalendar 未显示正确的结束日期

    我正在看调试页面 http jsbin com wukofacaxu edit js outputFullCalendar 官方网站的 我想安排一个活动时间为 22 09 2015 至 30 09 2015 dd mm yyyy 但它只显示

随机推荐

  • 替换字符串中的字符

    我正在尝试创建一个字符串 用 替换所有空格 但我不知道具体该怎么做 有人可以帮忙吗 String phrase new String This is a String test 假设它是Java 你可以使用字符串替换 http downlo
  • 如何禁用 MFC 中的最大化按钮?

    如何禁用 SDI 应用程序中的最大化按钮 功能 为了完整性 int CMainFrame OnCreate LPCREATESTRUCT lpCreateStruct ModifyStyle WS MAXIMIZEBOX 0
  • 使用数据库中的配置初始化应用程序组件

    我正在构建一个 Yii2 应用程序 通过swiftmailer 扩展 https github com yiisoft yii2 swiftmailer 我将电子邮件设置 smtp ssl 用户名等 存储在数据库表中 以便能够使用适当的视图
  • 同一服务器上的两个 Laravel 项目导致冲突

    我在同一台服务器上有两个 Laravel 5 1 项目 在单个项目上操作不会给我带来任何麻烦 但是如果我在两个浏览器选项卡上打开两个项目并在它们之间交替 我会收到 服务器遇到内部错误或配置错误 无法完成您的请求 进行了研究 发现服务器正在记
  • ORM 和逻辑删除

    任何可用的 ORM 是否支持使用位字段来表示行删除 更多信息 使用 C 工作 我需要删除这种方式来支持将远程数据库更改同步到中央数据库 我正在寻找一种可能的 ORM 但也对解决该问题的方法感兴趣 因此 如果有人知道任何语言 环境中的任何 O
  • 类型错误:io.connect 不是一个函数

    我正在遵循使用 Node js 和 socket io 的简单多人游戏的教程 http rawkes com articles creating a real time multiplayer game with websockets an
  • 如何运行包生成的jar(可能与lib下的其他jar一起运行)?

    我怎样才能跑 jarsbt生成的文件package 我创建了一个非常简单的例子 scala source package org pack class ScalaParser files Array String def doAll pri
  • 为什么有四个 Mono C# 编译器?

    这一页 http www mono project com CSharp解释了四种不同的 mono 编译器 mcs gmcs smcs dmcs 对我来说 拥有四个 C 编译器有点奇怪 通常 新版本的编译器会保持向后兼容性 我认为这是因为运
  • 需要了解 Git/Gerrit 命令(获取和推送)

    我正在遵循我们 IT 部门的一个示例 我想了解这个命令到底在做什么 git fetch origin refs changes refs remotes origin changes 为了提供一些参考框架 这是持续集成 CI 工具的一部分
  • ASP 中的“~/”解析为什么:当前文件夹还是网站的根目录?

    在文件路径中使用 是否解析为当前文件夹或网站的根目录 我有这样的文件结构 gt Folder gt Page1 Aspx gt App Themes gt Theme1 gt Images gt StyleSheet css gt Incl
  • 根据同时在另一个字段中输入的内容自动填充字段

    我试图弄清楚如何根据使用 javascript 在另一个输入字段中输入的内容自动填充输入值 这是我的代码
  • 是否有使用 Kohana 进行用户注册和登录身份验证的示例项目?

    我想制作一个网络应用程序 平台 它可以做非常简单的事情 用户可以注册 获得帐户 然后登录到平台 我已经安装了 Kohana 如果有一个轻量级的演示项目可以利用这些东西来看看它是如何完成的 那就太酷了 有没有好的可用的 Gallery3 测试
  • 使用带有注入承诺的 ngRoute 'resolve' 参数

    我已经配置了resolve返回 Promise 的多个路由的参数 以便延迟控制器的实例化 直到 Promise 得到解决 目前我使用函数符号 而不是指定要注入的字符串 例如 when article id templateUrl app a
  • 从程序集中公开不同的类型名称(别名)

    这个问题与一个相关我之前未回答的问题 https stackoverflow com q 22097706 409279 因为我仍在解决同样的问题 但这是一种不同的方法 我目前正在 C NET 项目中使用第三方 SOAP Web 服务 不幸
  • 使用 OR 运算符的 IIF 查询不起作用

    我正在尝试在 MS Access 查询中运行以下内容作为条件 基本上我想做的是 如果 checkbox True 则显示所有记录 包括那些空白或空字段的记录 我的表单组合框 combo9 中的默认值为 如果 checkbox False 则
  • 使用knockoutjs虚拟元素动态创建html部分

    我试图将 虚拟元素 与 html 绑定一起使用来动态创建 html 部分 但失败并显示消息 绑定 html 不能与虚拟元素一起使用 这是jsfiddle http jsfiddle net d3Dpp http jsfiddle net d
  • 设置为 0.1 的浮点数将 false 与 0.1 进行比较[重复]

    这个问题在这里已经有答案了 int main float f 0 1 if f 0 1 printf True else printf False 我只是c的初学者 我不明白上述程序的行为 输出为假 为什么 0 1 is a double文
  • 整个应用程序中的一个 BillingClient 实例

    我有一个有很多活动的应用程序 其中一项活动是显示购买选项 在计费库的示例应用程序中 https github com googlesamples android play billing https github com googlesam
  • 计算流中的标准差

    使用 Python 假设我正在运行已知数量的项目I 并能够计算处理每一项所需的时间t 以及处理所花费的总时间T以及迄今为止已处理的项目数量c 我目前正在即时计算平均值A T c但这可能会因为单个项目需要非常长的时间来处理 几秒与几毫秒 而产
  • 使用 'document.body.scrollHeight;' 计算 UIWebView 内容动态高度在 iOS 10 中返回更大的值

    我正在使用 Objective C 创建一个应用程序 其中我使用的是UIWebView以 HTML 格式显示内容 我正在使用下面的代码UIWebView委托方法webViewDidFinishLoad NSUInteger contentH