首页 > 解决方案 > UITabBar 文本未与横向模式下的图标正确对齐

问题描述

使用 UITabBar,当我处于横向模式时,我遇到了文本对齐问题。将文本上下居中以使其与图像中心对齐的最佳方法是什么?

我可以修复它,如果我只在横向模式下使用以下代码调整每个标签栏项目,但这似乎是错误的。也不确定这是否适用于所有设备。

surveyTabBar.items![1].titlePositionAdjustment = UIOffset.init(horizontal: 0, vertical: -10)

在此处输入图像描述

标签: iosswiftxcode

解决方案


我找到的最佳解决方案是使用 UIOffset 进行调整,但我只在横向模式下进行调整。

@IBOutlet var myTabBar: UITabBar!

override func viewWillLayoutSubviews() {
    super.viewWillLayoutSubviews()

    adjustTabBarTitles()
}

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
    super.viewWillTransition(to: size, with: coordinator)

    self.adjustTabBarTitles()
}

private func adjustTabBarTitles() {
    if UIDevice.current.orientation.isLandscape {
        for item in self.myTabBar.items! as [UITabBarItem] {
            item.titlePositionAdjustment = UIOffset(horizontal: 0, vertical: -8)
        }
    } else {
        for item in self.myTabBar.items! as [UITabBarItem] {
            item.titlePositionAdjustment = UIOffset(horizontal: 0, vertical: 0)
        }
    }
}

推荐阅读