我使用的是基于标签栏的应用程序,在细节屏幕上,标签栏是隐藏的。问题是,当标签栏被隐藏时,它仍然会占据标签栏和safeAreaLayoutInsets不更新的空白区域。在方向改变或从背景移动到前景时,它将起作用。
self.tabBarController.tabBar.hidden = YES;视图层次结构
UITabbarController
|--UISplitViewController
|--UIViewController (first VC)
|--UINavigationController
|--UIViewController (second VC)该问题与Apple Forum中报告的问题类似
发布于 2021-08-17 07:38:01
如果需要切换可见视图的选项卡栏可见性,此解决方法可修复布局:
let currentFrame = tabBarController.view.frame
tabBarController.view.frame = currentFrame.insetBy(dx: 0, dy: 1)
tabBarController.view.frame = currentFrame此代码应在选项卡栏可见性更改后立即执行。它触发安全区域的更新和视图的单个布局过程。用户看不到frame的大小调整。
这是一种变通方法,当然不是很好,但它对我们有效,而且似乎没有负面影响。此外,我不希望将来iOS自行更新布局时会有负面影响。
https://stackoverflow.com/questions/60445940
复制相似问题