问题标签 [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 投票
5 回答
143640 浏览

ios - Xcode 9 的安全区域

在探索Xcode9 Beta时,在界面构建器视图层次结构查看器上发现了安全区域。很好奇并试图了解 Apple 文档上的安全区域,主要是文档说“与自动布局直接交互的视图区域”但它并不满足我,我想知道这个新事物的实际用途。

有人有线索吗?

在此处输入图像描述

Apple 文档中关于安全区域的结论段落。

UILayoutGuide 类旨在执行以前由虚拟视图执行的所有任务,但以更安全、更有效的方式执行。布局指南不定义新视图。它们不参与视图层次结构。相反,他们只是在自己的视图坐标系中定义一个可以与自动布局交互的矩形区域。

0 投票
3 回答
8400 浏览

autolayout - 自 ios 11.0 起不推荐使用底部布局

我可以做些什么来修复底部布局已弃用的 iOS 11,我使用的是 Xcode 9 beta 2。

在此处输入图像描述

0 投票
0 回答
1246 浏览

ios - 安全区域 insetsLayoutMargins 无法按预期工作

我正在尝试使用新的安全区域。我正在尝试重现 WWDC 2017 - Session 204 中显示的示例。

在此处输入图像描述

我设置additionalSafeAreaInsets = UIEdgeInsetsMake (0, 0, 44, 100)了控制器和insetsLayoutMarginsFromSafeArea = false包含文本字段的红色,但我没有得到预期的结果,我希望使用相对于视图边界的边距从安全区域忽略文本字段。

0 投票
5 回答
13276 浏览

ios - 扩展 iOS 11 安全区域以包括键盘

iOS 11 中引入的新安全区域布局指南非常适合防止内容显示在栏下方,但它不包括键盘。这意味着当显示键盘时,内容仍然隐藏在它后面,这就是我要解决的问题。

我的方法是基于收听键盘通知,然后通过additionalSafeAreaInsets.

这是我的代码:

这很有效,因为MyControlleris aUIViewController延伸UITableView到整个安全区域。现在当键盘出现时,底部被向上推,这样键盘后面就没有单元格了。

问题在于底栏。我在底部还有一个工具栏,它已经包含在安全区域中。因此,将全键盘高度设置为额外的安全区域插入会将表格视图的底部向上推太多,正好是底部栏的高度。为了使这种方法正常工作,我必须将 设置additionalSafeAreaInsets.bottom为等于键盘高度减去底部栏的高度。

问题1:获得底部当前安全区域间隙的最佳方法是什么?手动获取工具栏的框架并使用它的高度?或者是否可以直接从安全区域布局指南中获取间隙?

问题2:据推测,底栏应该可以在不改变键盘大小的情况下改变大小,所以我还应该实现一些方法来监听栏的框架变化。这是最好的viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator)吗?还是别处?

谢谢

0 投票
0 回答
415 浏览

swift - Google Place Autocomplete searchController 隐藏在大型 iOS11 导航栏下

我已按照 google 地方自动完成示例将搜索栏添加到导航栏下的视图中。它显示正常,但即使搜索栏下方的线隐藏在较大的 iOS11 导航栏下。我在 AutoLayout 中启用了 safeAreaLayoutGuide。

搜索栏无效 搜索栏处于活动状态

我有我正在使用的代码。

0 投票
6 回答
8758 浏览

safearealayoutguide - xcode 解决“安全区域布局”错误

Illegal Configuration - iOS 9.0 之前的安全区域布局指南

停止此错误的正确方法是什么?

现在我只是取消选中“使用安全区域布局指南”,它允许我编译应用程序而不会出错。

0 投票
2 回答
16248 浏览

ios - xcode 9中xib的安全区域是什么?

您能否让我知道 xcode 9 中的 xibs 中的安全区域(在图像中突出显示)是什么?这有什么用?

在此处输入图像描述

0 投票
16 回答
72217 浏览

ios - iOS 11 安全区域布局指南向后兼容

是否启用与 11 以下 iOS 兼容的安全区域布局指南?

在此处输入图像描述

0 投票
4 回答
17066 浏览

xcode9 - 将最小部署目标升级到 iOS 9 后无法在 Xcode 9 中使用安全区域

我刚刚将我的应用程序从支持 iOS 8 更改为支持 iOS 9 及更高版本。我相信我已经正确地做到了这一点,因为当我现在构建我的应用程序时,我收到了关于应用程序中所有在 iOS 9 中已弃用的警告。

我正在使用 Xcode 9,GM 种子。

问题是我无法在我的任何情节提要中启用“使用安全区域布局指南”切换。当我这样做时,我会收到一条警告“iOS 9.0 之前的安全区域布局指南”。我需要更新一些其他设置吗?清洁和构建并没有解决问题。

0 投票
1 回答
15058 浏览

ios - 如何在 iOS 11 上的 iPhone X 上获得黑色状态栏

默认情况下,iPhone X 上的状态栏如下所示:

在此处输入图像描述

但我想实现这一点:

在此处输入图像描述

我尝试将其设置preferredStatusBarStylelightContent但仅在将状态栏后面的背景设置为黑色后才有效。

为了修复圆角,我最终添加了另一个带有圆角的子视图。

我想知道这是否是最好的方法.. 必须有更好的方法来实现这一点。


更新

这是一个可怕的想法,因为:

不要掩盖或特别注意关键显示功能。不要试图通过在屏幕顶部和底部放置黑条来隐藏设备的圆角、传感器外壳或访问主屏幕的指示器。也不要使用括号、边框、形状或说明性文字等视觉装饰来引起对这些区域的特别注意。

  • 视图顶部的圆角可能看起来不错,但您必须在代码中添加例外以确保圆角不会显示在其他 iPhone 上。你需要把它放在你所有的 ViewControllers / Storyboards 中。这不是很好。

  • 视图底部的圆角将直接显示在屏幕截图中,但顶部的角(手动设置)不会。当用户共享您的应用程序时,这将是丑陋的。