使用safeAreaInsets或LayoutGuide ** WITHOUT **接口生成器替换edgeForExtendedLayout

时间:2018-08-13 22:16:26

标签: ios swift uinavigationcontroller safearealayoutguide

前言:我正在以编程方式进行所有操作。 0接口构建器。

以前,当将VC推送到navVC堆栈时,所推送的VC的上边缘将被导航栏遮挡。我想要它,所以被推送的VC的顶部边缘在导航栏下方。我发现“ edgesForExtendedLayout”达到了我想要的目的。除了苹果说: “代替此属性,请使用视图的安全区域来确定其他内容遮挡了界面的哪些部分。有关更多信息,请参见UIView的safeAreaLayoutGuide和safeAreaInsets属性。”

我不知道如何翻译以下代码:

if let nextVC = getNextVC() {
    nextVC.edgesForExtendedLayout = .init(rawValue: 0)
    pushViewController(nextVC, animated: true)
}

使用safeAreaLayoutGuide或safeAreaInsets。我不能使用约束,因为推送视图还不在视图层次结构中?

我附加了一些图像,以了解我要处理的内容。
绿色= UINavigation控制器的边框

黄色='nextVC'的边框

红色='nextVC'中表的边框

将edgeForExtendedLayout设置为“ none”-对,但是更改值Apple表示不更改: It works but I shouldn't do this?

将edgeForExtendedLayout设置为“全部”-错误,但是苹果公​​司表示保留默认值: not working

0 个答案:

没有答案