【问题标题】:UITabBar text is not properly align with icons in landscape modeUITabBar 文本未与横向模式下的图标正确对齐
【发布时间】:2021-02-15 02:35:27
【问题描述】:

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

  • 我知道文本将在横向模式下位于右侧,我希望用图标将其居中。
  • 我的图片是自定义图片,但我制作了 25x25、50x50 和 75x75 的 1x、2x 和 3x 版本。
  • 我将 TabBar 的底部约束设置为 Superview.Bottom。

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

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

【问题讨论】:

    标签: ios swift xcode


    【解决方案1】:

    我找到的最佳解决方案是使用 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)
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-08
      • 1970-01-01
      相关资源
      最近更新 更多