问题标签 [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 - iPhoneX UI 布局问题
我们的应用程序有一个带有三个容器视图的 uiviewcontroller,垂直堆叠。当我在 iPhoneX 上运行该应用程序时,在 iPhone 8/7 中未出现的视图上方和下方都有空间。这是容器的并排比较以及它们在每个容器上的布局方式:
并排˙
今天早上阅读 Apple 文档并进行一些谷歌搜索,看起来问题可能是为 iPhone X 中的顶部和底部布局指南设置的安全区域。根据 Apple 的说法,这将是一个解决方案:
https://developer.apple.com/documentation/uikit/uiview/positioning_content_relative_to_the_safe_area
问题是我们目前不针对 iOS 11,我们需要兼容 9 和 10。有没有其他人处理过针对 iPhone X 的优化但还没有针对 11?任何帮助,将不胜感激。
ios - Xamarin.Forms:带有表单 ListView 的 iPhone X SafeArea
你们如何使用 Xamarin.Forms 处理 ListViews 的安全区域问题?只是将安全区域设置为整个 ListView 上的边距看起来很难看。因此,我搜索了类似自定义渲染器的东西,以使 ListView 尽可能与 iPhone X 中的 UITableView 相同。我当前的解决方案将 ViewCells 置于正确的位置,但分隔符正在离开屏幕,并且 ShortGroup 索引位于 Notch 后面在一些轮换中。除此之外,我当前的解决方案是在每个项目中实现它的大量工作(因为我使用 CustomViewCell 类作为解决方法)。
那么如何针对这个问题实现自定义渲染器呢?我当前的所有实现似乎都无法正常工作。而且我想等待 Xamarin 解决这个问题不是一个选项(因为 MasterDetail 页面仍然无法在 iOS SplitView 上运行,并且这在 2015 年被报告,只是被 Xamarin 忽略了......)。
编辑: Xamarin.Forms 中的 ListView 问题只有在 ListView 控件不是 ContentPage 的根时才会发生。在我的情况下,它位于 Grid 内,因为我也希望在这边有一个 SearchBar。在这种情况下,ListView 的内容(和 ShortGroup 索引)被 iPhone X 圆角和凹口截断。它看起来真的很难看,我想这是在一侧有一个 SearchBar 和一个 ListView 的一种非常常见的方式。这是一个项目的存储库,它具有第一个解决方法(ShortGroup 索引仍然存在问题,并且分隔符在可见区域之外运行,而它通常会在此之前停止):https ://github.com/Sebastian1989101/ OpenGeoDB-App
ios - NavigationBar 和 SafeArea 下的 iOS 11 MapView Compass 在 iOS 10 上不起作用
我正在努力将我的应用程序迁移到 iOS 11。为了可重用性,我将我的层次结构分成多个 StoryBoard。在第一个 StoryBoard 中,我有一个自定义容器视图控制器,它承载一个标签栏和一个特殊视图 (MonitoringView)。它嵌入在 UINavigationController 中。我将此控制器嵌入到导航控制器中,因为我希望所有选项卡都具有相同的功能和标题。
在其中一个选项卡中,我想显示一张地图。在 StoryBoard 上,我使用 0 将地图固定到 SuperView,因此我在导航和标签栏下得到它。在这里,我还有一个自定义控件,我将其固定到视图控制器的 SafeArea。
现在当我运行应用程序时,我使用
在容器控制器中调整子控制器(带有地图的那个)的安全区域插图。
虽然这适用于我固定到安全区域的额外控件,但地图的指南针和法律通知隐藏在 iOS 11 上的导航/标签栏下。在 iOS 10 上,虽然控制在栏下,而通知和指南针距离视图中心很远
我几天来一直在寻找解决方案,并且尝试了很多不同的方法。我真的很绝望,不知道我做错了什么。任何提示都非常感谢。
ios - MKMapView 忽略 iOS 11 和 iPhone X 上的安全区域
我正在尝试将应用程序迁移到 iOS 11,并且几天来我一直被一个又一个丑陋的 UI 错误所困扰。这次:MKMapView。我有一堆按钮,我固定在安全区域布局指南上,一切正常 - 除了 MKMapView。
它完全忽略了安全区域,因此指南针和法律按钮隐藏在条形或我自己的 UI 元素下。为了验证,我创建了一个只有一个普通 UIViewController 的新项目。然后我添加了一个 MKMapView 并配置了自定义的“additionalSafeAreaInsets”,它们确实被完全忽略了。
更糟糕的是,即使只有 MKMapView,法律标签在 iPhone X 上看起来也非常错误。
问题:有什么方法可以插入法律标签和指南针,以免被自定义视图隐藏?
ios - iOS 11 之前的前导或尾随水平对齐
警告:leading or trailing horizontal alignment before iOS 11
在 Xcode 9.1 上编译时,我在情节提要文件中的一个场景中遇到了警告。还有其他情节提要(部署目标为 iOS 10.0),但警告显示在特定情节提要文件上的特定场景中。
如果我在显示警告的场景中将部署目标更改为 iOS 11.0,则警告会被抑制,但我不想这样做。
有没有人遇到过这种情况?
ios - 如果部分离屏,子 ViewController 安全区域插图不会更新
在 iPhone X 上横向滑动子 ViewController 时,我在安全区域遇到困难。
我有一个根 ViewController,它的一个视图是可移动的,并且包含一个嵌入式子 ViewController。真正的应用程序是一个滑动侧边栏菜单 UI。此处的示例代码是精简版。
如果表格位于屏幕左侧,则安全区域布局规则将其单元格 contentView 插入到右侧以允许缺口。正确的。但是,如果我将子 ViewController 从屏幕的左边缘移开,则子的插图不会更新以重新布局内容。
我已经意识到,如果子 ViewController 在其最终位置完全显示在屏幕上,那么实际上一切正常。如果它的任何部分不在屏幕上,则不会发生安全区域更新。
这是显示问题的示例代码。这适用于标准的 Single View App Xcode 模板项目:将 ViewController 文件代码替换为显示的代码。运行时,向右滑动表格会将其从屏幕的左边缘移动到屏幕的右边缘。
请参阅“约束(...,乘数:0.5)”行。这设置了可移动视图相对于屏幕的宽度。在 0.5 时,表格完全适合屏幕,并且安全区域会随着它的移动而更新。向左停靠时,表格单元格尊重安全区域插图,而向右停靠时,表格单元格没有额外的插图,这是正确的。
一旦乘数超过 0.5,即使是在 0.51,当表格的右侧滑动到屏幕外时。在这种情况下,不会发生安全区域更新,因此表格单元格内容插图太大 - 即使表格左边缘现在远离安全区域,它仍然具有 44 像素的安全区域插图。
更复杂的是,如果 UIViews 不是 UIViewController 的视图,布局似乎可以在 UIViews 上正常工作。但我需要它与 UIViewControllers 一起工作。
谁能解释如何让子 ViewController 尊重正确的安全区域?谢谢。
重现代码:
xcode - 为什么情节提要安全区域在 iPhone X 上无法正常工作?
我正在尝试为新的 iPhone X 更新我的应用程序。在阅读了每个 UIObject 的“尺寸检查器”(标尺选项卡)中的安全区域功能和复选框“安全区域相对边距”之后,我认为这不会太糟糕了。但是,该功能似乎对我不起作用。
普通 iPhone 没有任何变化,这很好,但是对于 X,我的应用程序的顶部与手机的顶部插图重叠三分之一。有什么已知的方法可以解决这个*或我缺少的东西吗?
*通过解决这个问题,我的意思是让我的对象从露头下方开始,就像第二张图片一样。
怎么了:
期望的行为(来自https://arstechnica.com/gadgets/2017/11/how-devs-updated-their-apps-for-the-iphone-xs-screen-and-the-notch/):
ios - 使用 iPhone X 的安全区域指南计算 UIView 的高度
我有一个名为 headerview 的 UIView,我像 NavigationBar 一样使用它。它具有 60 的恒定大小和 0 的上/左/右布局约束。由于安全区域布局,除了 iPhone X 之外的所有设备看起来都不错。如果我将尺寸更改为 90,它在 iPhone X 上看起来不错,但现在在其他设备上看起来不对。我用下面的代码计算安全区域的高度并将其添加到高度,但现在它在其他设备中看起来很小。解决此问题的最佳方法是什么?
uitextview - UITextView 在 iOS 11 上无法纵向滚动
我有一个应用程序,其界面由条目的表格视图和用于查看和输入该条目的文本的文本视图组成。对于新创建的条目,我可以毫无问题地输入文本并滚动文本视图。但是,当我选择其他条目时,我在 iOS 11 设备上的纵向出现问题。当我输入足够的文本以强制文本视图滚动时,文本视图不会滚动。我必须将设备旋转为横向并返回纵向以使文本视图滚动。我在运行 iOS 9 和 iOS 10 的设备上没有这个问题。文本视图是一个启用了滚动的普通文本视图。
作为一个实验,我关闭了情节提要的安全区域布局指南。这样做使文本视图在我第一次在表格视图中选择条目时滚动。但是,如果我返回表格视图并返回文本视图,我会得到与打开安全区域布局指南相同的行为。除非我旋转到横向并返回到纵向,否则文本视图不会纵向滚动。
我添加到 Apple 标准 UITextView 的唯一代码是显示和隐藏键盘的代码。
我需要做什么才能让文本视图在 iOS 11 设备上纵向滚动?