提问人:Feron2000 提问时间:4/13/2023 最后编辑:HangarRashFeron2000 更新时间:4/13/2023 访问量:147
如何更改 UITabBarItem 的位置及其标题 (Storyboard)
How to change the position of an UITabBarItem and its title (Storyboard)
问:
我目前正在尝试使用具有 UITabBarController 的 Swift 构建一个应用程序。我在下面添加了一个屏幕截图,以显示我现在拥有的结果。
我的目标很简单。我想将绿色加号向下移动一点。为了保持标题的可读性,我还希望“添加产品”文本也向下移动。
所以我的问题是:如何向下移动加号图标和文本?
现在,我创建了两个函数来对 TabBarController 进行一些调整。这些函数存储在 Xcode 项目中,但存储在不同的文件中,因此我使用了扩展名。
extension UITabBarController {
func setupTabBarAppearance() {
// Set up appearance using UITabBarAppearance
let appearance = UITabBarAppearance()
appearance.configureWithOpaqueBackground()
appearance.backgroundColor = .customLightGrey
appearance.shadowImage = nil
appearance.shadowColor = nil
// Set the tab bar appearance
self.tabBar.standardAppearance = appearance
self.tabBar.scrollEdgeAppearance = appearance
}
}
extension UITabBarController {
func setupMiddleTabBarItem() {
// Get the middle tab bar item
guard let middleTabBarItem = self.tabBar.items?[2] else { return }
// Create a custom image with double the size of the original image
let imageSize = CGSize(width: middleTabBarItem.image?.size.width ?? 0, height: middleTabBarItem.image?.size.height ?? 0)
let customImage = UIImage(systemName: "plus.circle.fill", withConfiguration: UIImage.SymbolConfiguration(pointSize: imageSize.width * 3.0))?.withTintColor(.customGreen, renderingMode: .alwaysOriginal)
// Set the custom image and title for the middle tab bar item
middleTabBarItem.title = "Add Product"
middleTabBarItem.image = customImage
// Move the title
middleTabBarItem.titlePositionAdjustment = UIOffset(horizontal: 0, vertical: 10)
}
}
我在 main.storyboard 中为 UITabBarController 指定了以下类名:“NavigationTabViewController”。我没有在main.storyboard中为UITabBar分配类名(实际上可能是问题的原因)。我按以下方式调用了上面的函数:
class NavigationTabViewController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
// Call the setupMiddleTabBarItem function
self.setupMiddleTabBarItem()
// Set the background color and remove the translucent property
self.setupTabBarAppearance()
}
}
正如您在我添加到此线程的图片中看到的那样,背景是浅灰色的,按钮被放大了。但是,按钮完全相同,文本“添加产品”也是如此。我想移动这两个项目,但这些函数中的某些内容不起作用。
注意如果我只使用函数 setUpMiddleTabBarItem,那么文本会向下移动。此外,到目前为止,我用来向下移动符号的每种方法都失败了。
答: 暂无答案
评论
self.setupMiddleTabBarItem()
self.setupTabBarAppearance()