什么时候可以调用UIEdgeInsets safeAreaInsets?

时间:2017-09-26 17:40:49

标签: ios objective-c iphone

我需要为iPhone X调整我的视图,但我无法弄清楚何时初始化safeAreaInsets。根据文件,

  

如果视图当前未安装在视图层次结构中,或者不是   但在屏幕上可见,此属性中的边缘插入为0。

我认为当调用viewDidLoad时,将设置值,但情况并非如此。我可以在调用viewDidLayoutSubviews时获取值,但这似乎为时已晚,并且无论如何都不会返回正确的值。

任何人都可以向我解释如何使用safeAreaInsets属性吗?

1 个答案:

答案 0 :(得分:3)

它们在视图布局之前被初始化(因此在视图层次结构中)。 最佳位置来访问它们并采取相应的行动是在 viewWillLayoutSubviews 方法中。正如您已经提到的那样 viewDidLayoutSubviews 稍微太晚,但willLayoutSubviews工作得很好。快乐的编码!