问题标签 [safearealayoutguide]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1008 浏览

xcode - iPhone X 界面编程无自动布局

我有一个旧的应用程序源代码,它使用没有自动布局或大小类的故事板和 xib。即使我从头开始重写它,由于模块数量太多,这需要一些时间。迫切需要通过在运行时检测屏幕大小来修复手动设置 UI 元素框架的代码。因此,以这种方式编写的代码将元素放置在安全区域之外:

由于以这种方式放置的界面元素太多,我想知道修复适用于 iPhone X 的代码的简单方法是什么?

0 投票
0 回答
1062 浏览

ios - safeAreaLayoutGuide 在阻止旋转时返回错误值

在我的应用程序中,我确实有两个 viewController:

VideoListViewController- 仅限肖像

VideoPlayerViewController- 仅限风景

VideoListViewControllerVideoPlayerViewController通过打开self.present(viewController...)

我通过以下方式阻止方向:

我的问题是仅纵向视图接收到陆地空间安全区域...在我VideoListViewController.layoutSubviews打印self.safeAreaLayoutGuide.layoutFrame时,它在第一次返回时按预期工作{{0, 44}, {375, 734}}(纵向模式),但是当 VideoPlayer 出现在陆地空间旋转中时,我的纵向视图控制器得到{{44, 0}, {287, 791}}

效果是,旧视图更新会忽略安全区域,并在ViewPlayerViewController消失时自行修复。

有人遇到过这个问题吗?有什么解决方法吗?

0 投票
0 回答
115 浏览

ios - iOS 如何/何时确定 safeAreaLayoutguides 和 layoutMargins?

在处理自定义 UINavigationController 转换时,我注意到了一些有趣的事情:我在 fromController 中创建了一个 UIView 的副本,并将其添加到 transitionContext 以执行动画,但是 safeLayoutGuides/Insets 的值与从控制器。但是,它具有相似的边距,只是 safeAreaInsets 的数量不同:

UIView 究竟是如何设置这些属性的呢?在视图生命周期的哪个阶段?我猜它是由视图层次结构决定的,但我找不到细节。

0 投票
1 回答
2699 浏览

ios11 - iPhone X vs others status bar hidden

Apple advices us to avoid hiding status bar on iPhone X. My app hides status bar for all devices. But does it give a clean way to hide status bar on all devices where the bar doesn't interferes with UI as in iPhone X? Also I see status bar gets invisible in landscape mode in simulator. Not sure if it is a bug or a feature.

0 投票
2 回答
20467 浏览

ios - 目标 C:如何以编程方式在安全区域内创建 self.view

我刚刚将我的应用程序从支持 iOS 8 更改为支持 iOS 9 及更高版本。

由于我不使用故事板来创建我的视图,我想知道是否有“使用安全区域指南”选项以编程方式或类似的东西。

我试图锚定我的视图,但它们在 iPhone X 模拟器中不断重叠顶部和底部。

0 投票
2 回答
3079 浏览

ios - 安全区域指南未出现在 Xcode 中

我在大多数应用程序中使用 XIB,而不是 Storyboard。从图片中可以看出,我启用了安全区域布局指南以及自动布局,但由于某种原因,我的 XIB 仍然显示顶部和底部布局指南而不是安全区域。我错过了什么?好的,我更改以更新推荐设置。它仍然没有在 XIB 文件中显示安全区域,但应用程序本身似乎确实尊重安全区域。这是否像应该完成的正确方式?

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

0 投票
2 回答
3679 浏览

ios - 如何设置状态栏或安全区域以删除 iPhone X 上的空白?

我添加了使用安全区域指南的选项,但是当我查看应用程序时,它似乎尊重安全区域,但有一些我无法摆脱的空白。我不知道是什么原因造成的,也不知道如何从白色改变颜色。

我已将背景颜色设置为您在下面看到的颜色。

我还设置了白色状态栏样式

在此处输入图像描述

我的主要故事板

在此处输入图像描述

在此处输入图像描述 在此处输入图像描述

0 投票
1 回答
1463 浏览

iphone - 如何为 iPhone X 中安全区域之外的上下区域设置不同的颜色

如何为 iPhone X 中的外部安全区域(即图像中的点 1 和点 2)设置不同的颜色?

如果我将颜色设置为主视图(第 3 点),那么它将应用于整个视图。我想为安全区域的上部区域、安全区域和底部安全区域下方设置不同的颜色。

在此处输入图像描述

0 投票
0 回答
210 浏览

ios - iPhone X 安全区域大小

我正在尝试为 iPhone X 升级我的应用程序。我没有使用自动布局、约束或安全区域。

当我在 iPhone X 模拟器上运行我的应用程序时,我得到的是:

在此处输入图像描述

我的布局在黄色区域。在不同型号的 iPhone 上,它在时间和电池状态(y 位置 20 像素)的下方开始。但在 iPhone X 上,它的起点要低得多,我不能在黑色区域放置任何东西。有人知道是否有办法摆脱这些黑条吗?从文档

我知道你不应该把任何东西放在靠近角落的地方,但这样的空间太大了。

0 投票
0 回答
42 浏览

ios - iOS 安全区域边距未延伸到导航栏底部

编辑 - 这被标记为重复。虽然我得到的答案中的解决方案是相同的,但我想要修复的症状却不是,经过数小时的研究后,我没有发现它被提及。

我一辈子都无法让这个愚蠢的 iphone x 东西正常工作。

我有一个视图,它应该在导航栏的正下方被按下。适用于任何非 iphone x 设备。但是,当我将 iPhone x 限制在安全区域的顶部或超级视图的上边距(主视图故事板视图控制器)打开了安全区域的相对边距。

如果我为主视图关闭那些安全区域相对边距,我试图约束到导航栏底部的视图位于导航栏下方,一直位于屏幕顶部。

我设置了这个视图以允许视图在导航栏下扩展,因为它是半透明的并且有一张在下方移动的地图。如果可能的话,我想保持这种效果。

顺便说一句,我想知道它是否可能相关,但我无法让我的 iPhone x 模拟器将任何视图的边缘延伸到安全区域之外。我的顶部和底部总是有一个大黑条,即使在我的故事板上它显示背景一直延伸到正确的边缘。所以,我的故事板正确地显示了一些东西,即使这个视图压在我遇到问题的导航栏上。但是模拟器不会将任何视图扩展到安全区域之外,并且这个看起来附加到导航栏的特定视图要低得多。

我可以提供任何提示或信息请求以帮助解决此问题吗?

谢谢

编辑 - 在这个链接的部分说

检查您的代码是否处理不同的屏幕纵横比。许多应用程序根据特定的宽度、高度或纵横比定位内容。验证您的内容是否可缩放并正确定位。

我的应用总是像右边的例子一样显示。在所有导航控制器的上方,甚至是没有导航控制器和背景图像的屏幕上,总会有一个又大又难看的黑条。故事板显示这些就像我应该瞄准的左侧图像一样,但运行模拟器永远不会反映这一点。我只是遇到模拟器错误吗?