Rag*_*hav 9 applet objective-c tabbar ios safearealayoutguide
我正在使用基于选项卡栏的应用程序,并且在详细信息屏幕上选项卡栏被隐藏。问题是当选项卡栏隐藏时,它仍然会占据选项卡栏的空白区域并且safeAreaLayoutInsets不会更新。当方向改变或从背景移动到前景时,它会起作用。
self.tabBarController.tabBar.hidden = YES;
Run Code Online (Sandbox Code Playgroud)
查看层次结构
UITabbarController
|--UISplitViewController
|--UIViewController (first VC)
|--UINavigationController
|--UIViewController (second VC)
Run Code Online (Sandbox Code Playgroud)
该问题与Apple 论坛中报告的问题类似
Rag*_*ari 19
如果您需要切换可见视图的选项卡栏可见性,此解决方法可以修复布局:
let currentFrame = tabBarController.view.frame
tabBarController.view.frame = currentFrame.insetBy(dx: 0, dy: 1)
tabBarController.view.frame = currentFrame
Run Code Online (Sandbox Code Playgroud)
此代码应在选项卡栏可见性更改后立即执行。它会触发安全区域的更新和视图的单个布局传递。frame用户看不到大小的调整。
这是一种解决方法,当然不是很好,但它对我们有用,而且似乎没有负面影响。此外,我预计将来 iOS 自行更新布局时不会产生负面影响。