Swift 将 TabBar 置于屏幕顶部在 iOS 11 中不起作用

Swift Placing TabBar on top of the screen not working in iOS 11

在 UITabBarController 中,我使用以下代码将标签栏放在屏幕顶部:

self.tabBar.frame = CGRectMake(0,0,UIScreen.mainScreen().bounds.width,50)

这在 iOS 10 上完美运行。 但是当相同的应用程序安装在 iOS11 上时。 只放在底部,不向上移动。

真的不知道 iOS11
发生了什么变化 但是
如何将标签栏向上移动 iOS 11

经过如此多的努力找到了解决方案。

我将 tabBar.frame 代码放在 viewDidAppear 中,它适用于 iOS 10 及以下版本,但要支持 iOS 11,需要放在 viewDidLayoutSubviews 中,如下所示,这实际上是正确的方法:

override func viewDidLayoutSubviews()
{
    tabBar.frame = CGRectMake(0,0,UIScreen.mainScreen().bounds.width,50)
}