ios xcode 电容器故事板约束以停止状态栏挂在 web 视图的顶部

Posted

技术标签:

【中文标题】ios xcode 电容器故事板约束以停止状态栏挂在 web 视图的顶部【英文标题】:ios xcode capacitorjs storyboard constraint to stop status bar hanging over the top of the webview 【发布时间】:2021-07-31 16:44:44 【问题描述】:

xcode - webview content is showing in status bar

在这篇文章中,它暗示要确保状态栏不在 webview 上方,即在电容器的情况下,应用程序,您应该向情节提要添加约束。

但是,在我的 xcode(最新)中,电容器“桥视图控制器”的情节提要不允许我应用约束。所有选项都显示为灰色:

但是,我无法弄清楚如何让 ios 状态栏不位于应用程序的顶部,并且所有旧的 Cordova 和 ionic 方法似乎都不起作用。

无论我做什么,状态栏都会移交 webview..

有任何想法或 ios/capacitor js pro 可以提供帮助吗?

【问题讨论】:

【参考方案1】:

Capacitor 使用单个 ViewController,其中唯一的视图是全屏 WKWebView,因此您不能对其添加任何约束。

你应该做的就是在你的 index.html 中添加这个视口元标记<meta name='viewport' content='initial-scale=1, viewport-fit=cover'> 并在env() CSS 函数和预定义的环境变量safe-area-inset-left 的帮助下尊重安全区域, safe-area-inset-rightsafe-area-inset-topsafe-area-inset-bottom 如 Apple 在 this article 上所述

如果您的应用不能滚动并且您不想自己处理安全区域,您也可以将视口元标记设置为<meta name='viewport' content='initial-scale=1, viewport-fit=contain'> 并将其添加到capacitor.config.json

"ios": 
    "contentInset": "always"

【讨论】:

我尝试使用配置选项,但它没有改变任何东西 - 根据环境添加填充主体,但也许我遗漏了一些东西。当用户向下滚动页面时,文本会移到状态栏后面。 这是一个演示github.com/j-d-carmichael/capacitor-demo 配置选项适用于当应用程序不滚动到状态栏后面,但演示应用程序滚动到状态栏后面,因此您不能对该应用程序使用该选项。在你的情况下,我会推荐一个固定的“标题”,它使用 env 变量并隐藏它后面的可滚动内容 啊,我明白了 - 我认为电容器的解决方案会更强大,黑客攻击更少 所有购物和列表应用程序都这样做:)。 Cordova 通过他们的状态栏管理这个,并确保网站的窗口没有进入状态栏。如果电容器提供更多的控制来约束 xcode 中的视图而不是破解它,那将会容易得多。【参考方案2】:

我对 Capacitor 不熟悉,但作为 iOS 开发人员,View Controller 不是视觉元素,因此它不能有约束。

您需要找到一种方法来访问 Capacitor 中的 UIView,然后对视图应用约束。

【讨论】:

好的,谢谢,我会看看能不能找到这个——只是为了确认一下,这将是 UIView 故事板,对吧?【参考方案3】:

将此添加到capacitor.config.json 以获取旧行为。 (有移动可能的值)

"ios": 
      "contentInset": "always"
  

更新:

但是,在我的 xcode(最新)中,电容器“桥”的情节提要 视图控制器”不允许我应用约束..所有 选项显示为灰色:

“Add New Constraints” checkboxes and fields are disabled

【讨论】:

我试图添加这个,但无论我做什么,文本总是在状态栏下移动,看起来很糟糕。这是一个虚拟的 vue 应用 poc。 github.com/j-d-carmichael/capacitor-demo 不幸的是,所有链接似乎都不适用于最新的 xcode 和电容器js,但仍然感谢。

以上是关于ios xcode 电容器故事板约束以停止状态栏挂在 web 视图的顶部的主要内容,如果未能解决你的问题,请参考以下文章

水平对齐在 Xcode 故事板中不被视为 X 位置约束吗?

带有 iOS 7 的 Xcode 5 中的 NSInternalInconsistencyException:“故事板:容器视图中有意外的子视图。”

故事板约束(Xcode)

Xcode 6.3 故事板自动布局约束

Xcode故事板 - 大于或等于约束不起作用

iOS10 +渐变停止工作[重复]