WKWebView 缩放以适合

2023-12-06

从 UIWebView 转移到 WKWebView,我无法弄清楚如何使用 WKWebView 大小上的 loadHTMLString 函数加载我正在加载的 HTML 以适应视图边界。我现在可以加载 html,但它超出了我视图的右侧和底部。如何缩放它以适合我的视图范围?


首先,查看容器视图故事板在其中您将添加 WKWebView 作为subview:

@IBOutlet var container: UIView!

然后导入WebKit并初始化它,然后添加为容器的子视图。为了保留边界,您必须根据其父视图为其赋予约束值。我就是这样做的:

        let webView = WKWebView(frame: .zero)
        container.addSubview(webView)

        webView.translatesAutoresizingMaskIntoConstraints = false
        let height = NSLayoutConstraint(item: webView, attribute: .height, relatedBy: .equal, toItem: container, attribute: .height, multiplier: 1, constant: 0)
        let width = NSLayoutConstraint(item: webView, attribute: .width, relatedBy: .equal, toItem: container, attribute: .width, multiplier: 1, constant: 0)
        let leftConstraint = NSLayoutConstraint(item: webView, attribute: .leftMargin, relatedBy: .equal, toItem: container, attribute: .leftMargin, multiplier: 1, constant: 0)
        let rightConstraint = NSLayoutConstraint(item: webView, attribute: .rightMargin, relatedBy: .equal, toItem: container, attribute: .rightMargin, multiplier: 1, constant: 0)
        let bottomContraint = NSLayoutConstraint(item: webView, attribute: .bottomMargin, relatedBy: .equal, toItem: container, attribute: .bottomMargin, multiplier: 1, constant: 0)
        container.addConstraints([height, width, leftConstraint, rightConstraint, bottomContraint])

        let myURL = URL(string: "")
        let myRequest = URLRequest(url: myURL!)
        webView.load(myRequest)

添加所需的网址即可完成。

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

WKWebView 缩放以适合 的相关文章

随机推荐

  • 如何在另一页获取数组详细信息

    我有类别数组 还有更多产品 我需要在类别页面中显示类别 当单击某个类别时 我必须重定向产品页面并显示必要的产品 单击产品时 我必须重定向产品详细信息页面并显示必要的产品详细信息 类别加载到类别页面 点击时会重定向到产品页面 但是 我看不到产
  • Android 获取手机联系人并删除重复项

    我遇到了与联系人相关的问题 我获取了手机联系人并将它们存储在我的列表对象中 这是它的代码 Uri uri ContactsContract Data CONTENT URI String projection ContactsContrac
  • 我应该如何构建我的 Node/express/mongodb 应用程序?

    我只是好奇人们如何构建他们的 Node js 应用程序 通常我创建模型 视图 控制器 就这么简单 但我对 Node js 领域还算陌生 我正在尝试尽可能多地了解社区的运作方式 欢迎任何答案 谢谢 无论如何 我的实际设置是这样的 直到我找到
  • 如何以编程方式判断Word文档是否损坏?

    我有一个小的 C 应用程序 可以与 word 进行互操作 将一堆 word doc 文件转换为文本文件 并且在大多数情况下 这都可以正常工作 但是 如果文档已损坏 则 word 无法打开该文件并弹出一个对话框 这意味着我无法完全自动化此转换
  • 强制关闭 Android Activity 之前的回调?

    我希望在我的应用程序崩溃之前执行一些紧急清理代码 我尝试使用 onDestroy onFinal 和 Finalize 无济于事 这在 Android Activity 中可能吗 好吧 我建议您的应用程序一开始就不要崩溃 如果有什么东西可能
  • 有没有更好的方法来求数字乘法和求和?

    int N 2345 var digitArray N ToString ToCharArray int multiplicationSum 1 foreach char digit in digitArray multiplication
  • 如何标记因子但仍保留其原始水平值 - R

    我将这个问题分为两部分 第一部分是一般问题 第二部分是具体问题 首先 我想知道是否有一种可能的方法来标记数字因子但仍保留其原始数字级别 这特别令人困惑 因为我意识到当我们将标签参数传递给一个因子时 它就会变成该因子的级别 例如 x lt f
  • 我的网址是否以斜杠 (/) 结尾?我该如何使用 codeigniter 来做到这一点

    我正在尝试找出最合适的 从我读过的文章来看 似乎最好以斜杠结尾 url 所以而不是 http example url article 内容如下 http example url article 首先 我调整了 htaccess 以强制尾随斜
  • 在 Java 中组成 URL 或 URI 的惯用方法是什么?

    如何在 Java 中构建 URL 或 URI 有没有一种惯用的方法 或者可以轻松做到这一点的库 我需要允许从请求字符串开始 解析 更改各种 URL 部分 方案 主机 路径 查询字符串 并支持添加和自动编码查询参数 从 Apache HTTP
  • Node.js 开始读取文件的特定行

    在 Node js 上 我们可以使用以下命令逐行读取文件readline module var fs require fs var readline require readline var rl readline createInterf
  • Azure 广告在声明中返回角色,但 User.IsInRole 返回 false

    知道是什么原因造成的吗 我可以在 User Claims 中看到声明 我唯一能想到的是 来自 Azure Ad Roles 的声明返回的结果与 IsInRole 检查的内容不同 声明中显示的 CorpAdmin 角色 User IsInRo
  • 使用 ...(rest) 参数将参数从数组传递到 Actionscript 方法

    我的问题是这个问题的 Flex 换位 我可以将数组作为参数传递给 Java 中具有可变参数的方法吗 也就是说 我在一些 Actionscript 代码中有一个数组 我需要将数组中索引的每个对象传递到一个方法中method arguments
  • 从 ListView 的自定义适配器中的 URL 加载图像 (Android Studio)

    虽然位图似乎已正确获取 但变量 userBitmap 将保持为空 然而 当在我的平板电脑上向上或向下滚动时 新的列表行将包含图片 但它们都是相同的并且是错误的 真的 真的很困惑 我尝试了多种不同的方法从网络获取图像 任何帮助是极大的赞赏 我
  • 如何恢复初始 git 提交?

    我第一次提交到 git 存储库 然后我对这个承诺感到后悔并想恢复它 我尝试 git reset hard HEAD 1 我收到这条消息 fatal ambiguous argument HEAD 1 unknown revision or
  • Ajax,防止点击时出现多个请求

    当用户单击登录或注册按钮时 我试图阻止多个请求 这是我的代码 但它不起作用 第一次工作正常 然后返回 false do login click function e e preventDefault if this data request
  • C# - 从数据表中删除具有相同列值的行

    我有一个DataTable看起来像这样 ID Name DateBirth 1 aa 1 1 11 2 bb 2 3 11 2 cc 1 2 12 3 cd 2 3 12 这是删除具有相同 ID 的行的最快方法 以获得类似的结果 保留第一个
  • iterparse 无法解析某个字段,而其他类似的则可以

    我用Python的iterparse解析 nessus 扫描的 XML 结果 nessus 文件 对意外记录的解析失败 但类似的记录已被正确解析 XML 文件的一般结构是很多记录 如下所示
  • 不同的控制器有不同的布局文件

    如何使我的 ZF2 模块加载特定控制器的其他布局文件 考虑你有IndexController and AdminController在您的 ZF2 应用模块中和IndexController正在使用布局 phtml但你想用管理布局 phtm
  • 在目录中递归查找并替换文件名

    我想重命名以以下开头的文件夹中的所有文件123 xxx txt to xxx txt 例如我的目录有 123 xxx txt 123 yyy txt 123 zzz txt 我想将所有文件重命名为 xxx txt yyy txt zzz t
  • WKWebView 缩放以适合

    从 UIWebView 转移到 WKWebView 我无法弄清楚如何使用 WKWebView 大小上的 loadHTMLString 函数加载我正在加载的 HTML 以适应视图边界 我现在可以加载 html 但它超出了我视图的右侧和底部 如