ios - UITabBar 文本未与横向模式下的图标正确对齐
问题描述
使用 UITabBar,当我处于横向模式时,我遇到了文本对齐问题。将文本上下居中以使其与图像中心对齐的最佳方法是什么?
- 我知道文本将在横向模式下位于右侧,我希望将其与图标居中。
- 我的图像是自定义图像,但我制作了 25x25、50x50 和 75x75 的 1x、2x 和 3x 版本。
- 我将 TabBar 的底部约束设置为 Superview.Bottom。
我可以修复它,如果我只在横向模式下使用以下代码调整每个标签栏项目,但这似乎是错误的。也不确定这是否适用于所有设备。
surveyTabBar.items![1].titlePositionAdjustment = UIOffset.init(horizontal: 0, vertical: -10)
解决方案
我找到的最佳解决方案是使用 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)
}
}
}
推荐阅读
- database - 对象名称作为 Logtalk 中的变量
- sql - 不同 ID 的最旧记录 - SparkSQL
- html - Angular throws ExpressionChangedAfterItHasBeenCheckedError
- javascript - 使用 jQuery 隐藏除给定 data-* 属性之外的所有元素
- javascript - 从样板(React)项目中删除服务器端
- python - Python Pandas - 模糊重复匹配
- php - 在简单的 mvc 项目中无法使用 htaccess
- php - 如何在 laravel 中获得产品的经过验证的评论
- javascript - Datatable 插件中的动态下拉菜单
- php - PHP:使用绑定参数创建并运行 PostGres 过程(BEGIN ... END)