使用 Storyboard 的 UITabBar 宽度

UITabBar width using Storyboard

我想获得 UITabBar 的宽度,以便获得项目的宽度。 为此,我使用:

let itemWidth = tabBar.frame.size.width / tabBar.items.count

但是我得到的宽度似乎不对...

tabBar.frame.size.width 根据预览给出 Storyboard 中 tabBar 的宽度...

也就是说,如果我的 Storyboard 预览设置为 iPad Pro 12.9"tabBar.frame.size.width 将 return 1024.0 即使代码是 运行 on an iPhone 5s.

我在这里错过了什么?

UITabBar 的尺寸 只有在其 layoutSubviews() 函数执行后才准确。子类 UITabBarController 并在 viewDidLayoutSubviews() 中访问标签栏的大小。

class CustomTabBarController: UITabBarController {
    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()

        print(tabBar.frame.width) //this will print the actual width
    }
}