【发布时间】:2019-12-18 19:17:38
【问题描述】:
在 iOS 13 中,作为模型呈现的 UIViewcontroller 的视图恰好从箭头的尖端开始。因为它,我所有弹出窗口中的顶部横幅都被剪掉了。我可以防止这种情况发生吗?我希望我的 UIView 不是从箭头开始,而是在箭头完成后。
【问题讨论】:
标签: uipopovercontroller ios13 uipopover uipopoverpresentationcontroller
在 iOS 13 中,作为模型呈现的 UIViewcontroller 的视图恰好从箭头的尖端开始。因为它,我所有弹出窗口中的顶部横幅都被剪掉了。我可以防止这种情况发生吗?我希望我的 UIView 不是从箭头开始,而是在箭头完成后。
【问题讨论】:
标签: uipopovercontroller ios13 uipopover uipopoverpresentationcontroller
我不知道他们为什么改变了这种行为,如果你不使用 xibs 可能会很麻烦。我在文档中找不到任何关于它的内容。
使用安全区域来调整视图的位置。您既可以尝试扩大该红色区域的大小,也可以完全跳过箭头。在这种特殊情况下,如果箭头始终位于顶部,您可以使用 safeAreaInsets.top。
【讨论】:
我想知道您的 contentView 是否包含 UIScrollView。如果是,请将alwaysBounceVertical = YES 添加到您的滚动视图中。它适用于我的情况。
【讨论】:
为了解决这个问题,我打开了我的视图控制器的 XIB,选择了最上面的视图,然后在文件检查器下选中了“使用安全区域布局指南”。然后我在该视图的唯一子视图(UITableView)周围添加了自动布局约束(长度为 0)。
(我还需要更新视图控制器的背景颜色。这会将箭头颜色改回 iOS 12 及之前的颜色。)
【讨论】:
UITableViewController。在根视图中只是一个UITableView。在表格视图和周围的安全区域之间设置了约束(“将尾随对齐到:安全区域”、“将顶部对齐到:安全区域”等)