当我尝试在我的ViewController中检索viewDidLoad中的safeAreaInsets时,它在iPhoneX上返回(0,0,0,0),我知道这是错误的。文档说,如果View不是层次结构的一部分或View不可见,就会发生这种情况。所以我的问题是,检索safeAreaInsets然后使用这些插图布局我的subview的最佳位置在哪里? 最佳答案 您需要使用viewDidLayoutSubviews而不是viewDidLoad。overridefuncviewDidLayoutSubviews(){super.viewDi
当我尝试在我的ViewController中检索viewDidLoad中的safeAreaInsets时,它在iPhoneX上返回(0,0,0,0),我知道这是错误的。文档说,如果View不是层次结构的一部分或View不可见,就会发生这种情况。所以我的问题是,检索safeAreaInsets然后使用这些插图布局我的subview的最佳位置在哪里? 最佳答案 您需要使用viewDidLayoutSubviews而不是viewDidLoad。overridefuncviewDidLayoutSubviews(){super.viewDi
我有一个rootViewController,它有一个subviewController(fullScreenViewController),其View不时显示在View上方(但作为subview)rootViewController,占据全屏。即rootViewController.addChildViewController(fullScreenViewController)rootViewController.view.addSubview(fullScreenViewController.view)这个“全屏演示”是通过约束更新完成的,不是通过使用present()(这是有充分
我需要调整iPhoneX的View,但我不知道safeAreaInsets何时初始化。根据文档,Iftheviewisnotcurrentlyinstalledinaviewhierarchy,orisnotyetvisibleonscreen,theedgeinsetsinthispropertyare0.我认为调用viewDidLoad时会设置值,但事实并非如此。我可以在调用viewDidLayoutSubviews时获取值,但这似乎为时已晚,而且无论如何都不会返回正确的值。任何人都可以向我解释如何使用safeAreaInsets属性吗? 最佳答案
我有一个应用程序以编程方式完成所有UI,而无需使用自动布局或任何类型的约束。屏幕底部是一个UIToolbar。我试图将其布局为与iPhoneX屏幕的底部安全区域配合良好,但由于VC的设计,我无法使用布局约束。所以在我的layoutSubviews回调中我这样做了:if(@available(iOS11.0,*)){toolbarHeight+=UIApplication.sharedApplication.keyWindow.safeAreaInsets.bottom;}然后直接用toolBarHeight设置UIToolbar的frame。这是因为工具栏现在是正确的高度并在您旋转到横
我正在尝试为iPhoneX更新viewWillTransition(tosize:withcoordinator:)方法。但是我无法获取safeAreaInsets值的目的地。请帮忙!overridefuncviewWillTransition(tosize:CGSize,withcoordinator:UIViewControllerTransitionCoordinator){super.viewWillTransition(to:size,with:coordinator)if#available(iOS11.0,*){ifletwindow=UIApplication.shar
我正在更新我的应用程序以使其适用于iPhoneX。除一个View外,所有View现在都可以正常工作。我有一个ViewController,它呈现一个覆盖整个屏幕的自定义UIView。在我使用UIScreen.main.bounds在完成所有布局之前找出View的大小之前(我需要它来为collectionView放置正确的itemSize)。我以为现在我可以做类似的事情UIScreen.main.bounds.size.height-safeAreaInsets.bottom以获得正确的可用大小。问题是,safeAreaInsets返回(0,0,0,0)尝试使用iPhoneX(模拟器)。
导语:本文主要是对iOS11下APP中tableView内容下移20pt或下移64pt的问题适配的一个总结。内容包括五个部分:问题的原因分析、adjustContentInset属性的计算方式、什么情况下的tableView会发生内容下移、有哪些解决方法、解决这个问题时遇到的另外一个小问题。第一种:UIEdgeInsetsinsets=UIEdgeInsetsMake(20,0,0,0);if(@available(iOS11.0,*)){//insets=self.view.safeAreaInsets;//在viewDidLoad里获取不到safeAreaInsetsinsets=[UIA
导语:本文主要是对iOS11下APP中tableView内容下移20pt或下移64pt的问题适配的一个总结。内容包括五个部分:问题的原因分析、adjustContentInset属性的计算方式、什么情况下的tableView会发生内容下移、有哪些解决方法、解决这个问题时遇到的另外一个小问题。第一种:UIEdgeInsetsinsets=UIEdgeInsetsMake(20,0,0,0);if(@available(iOS11.0,*)){//insets=self.view.safeAreaInsets;//在viewDidLoad里获取不到safeAreaInsetsinsets=[UIA