Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
当我尝试在我的视图控制器中检索 viewDidLoad 中的 safeAreaInsets 时,它在 iPhone X 上返回 (0, 0, 0, 0),我知道这是错误的。文档说,如果视图不是层次结构的一部分或视图不可见,就会发生这种情况。所以我的问题是,检索 safeAreaInsets 然后使用这些插图布局我的子视图的最佳位置在哪里?
您需要使用viewDidLayoutSubviews而不是viewDidLoad.
viewDidLayoutSubviews
viewDidLoad
override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() // your layout code here }
注意:与viewDidLoad只调用一次不同,viewDidLayoutSubviews通常会调用多次。确保只在内部设置框架viewDidLayoutSubviews,并且不要执行应该只发生一次的操作,例如添加子视图。