问题标签 [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.
ios - 扩展 iOS 11 安全区域以包括键盘
iOS 11 中引入的新安全区域布局指南非常适合防止内容显示在栏下方,但它不包括键盘。这意味着当显示键盘时,内容仍然隐藏在它后面,这就是我要解决的问题。
我的方法是基于收听键盘通知,然后通过additionalSafeAreaInsets
.
这是我的代码:
这很有效,因为MyController
is aUIViewController
延伸UITableView
到整个安全区域。现在当键盘出现时,底部被向上推,这样键盘后面就没有单元格了。
问题在于底栏。我在底部还有一个工具栏,它已经包含在安全区域中。因此,将全键盘高度设置为额外的安全区域插入会将表格视图的底部向上推太多,正好是底部栏的高度。为了使这种方法正常工作,我必须将 设置additionalSafeAreaInsets.bottom
为等于键盘高度减去底部栏的高度。
问题1:获得底部当前安全区域间隙的最佳方法是什么?手动获取工具栏的框架并使用它的高度?或者是否可以直接从安全区域布局指南中获取间隙?
问题2:据推测,底栏应该可以在不改变键盘大小的情况下改变大小,所以我还应该实现一些方法来监听栏的框架变化。这是最好的viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator)
吗?还是别处?
谢谢
xcode9 - 将最小部署目标升级到 iOS 9 后无法在 Xcode 9 中使用安全区域
我刚刚将我的应用程序从支持 iOS 8 更改为支持 iOS 9 及更高版本。我相信我已经正确地做到了这一点,因为当我现在构建我的应用程序时,我收到了关于应用程序中所有在 iOS 9 中已弃用的警告。
我正在使用 Xcode 9,GM 种子。
问题是我无法在我的任何情节提要中启用“使用安全区域布局指南”切换。当我这样做时,我会收到一条警告“iOS 9.0 之前的安全区域布局指南”。我需要更新一些其他设置吗?清洁和构建并没有解决问题。
ios - 如何在 iOS 11 上的 iPhone X 上获得黑色状态栏
默认情况下,iPhone X 上的状态栏如下所示:
但我想实现这一点:
我尝试将其设置preferredStatusBarStyle
为lightContent
但仅在将状态栏后面的背景设置为黑色后才有效。
为了修复圆角,我最终添加了另一个带有圆角的子视图。
我想知道这是否是最好的方法.. 必须有更好的方法来实现这一点。
更新
这是一个可怕的想法,因为:
- 正如@Moritz指出的那样,Apple 的指导方针明确禁止这样做:
不要掩盖或特别注意关键显示功能。不要试图通过在屏幕顶部和底部放置黑条来隐藏设备的圆角、传感器外壳或访问主屏幕的指示器。也不要使用括号、边框、形状或说明性文字等视觉装饰来引起对这些区域的特别注意。
视图顶部的圆角可能看起来不错,但您必须在代码中添加例外以确保圆角不会显示在其他 iPhone 上。你需要把它放在你所有的 ViewControllers / Storyboards 中。这不是很好。
视图底部的圆角将直接显示在屏幕截图中,但顶部的角(手动设置)不会。当用户共享您的应用程序时,这将是丑陋的。