我将SF Symbols图像用作iOS应用程序中的选项卡图像,方法如下:
self.tabBarItem.image = UIImage(systemName: "ellipsis")
这会导致所有图像都进行顶部对齐,但我想使它们垂直居中。
我该怎么办?
答案 0 :(得分:5)
默认情况下,显然SF符号以系统字体大小呈现。因此,如果您将省略号的基线偏移量增加一半,则可以几乎完美地将其垂直居中对齐。
这几乎是完美的,因为省略号具有自己的高度,即使解决方案不多,该解决方案也无法解决这个问题。
self.tabBarItem.image = UIImage(systemName: "ellipsis")!.withBaselineOffset(fromBottom: UIFont.systemFontSize / 2)
答案 1 :(得分:1)
使您的按钮与“tabBarSystemItem:.more”相同,但可以删除标题并应用配置的最佳解决方案如下:
self.tabBarItem.image = UIImage(systemName: "ellipsis", withConfiguration:
UIImage.SymbolConfiguration(weight: .black))!.imageWithoutBaseline()
答案 2 :(得分:0)
您必须在UITabBarItem
上设置图像插图,才能将图标下移6或7像素(取决于图标大小)。
我通过创建UITabBarController
的子类并将此代码添加到我的viewDidLoad
方法的底部来完成此操作:
tabBar.items?.forEach({
$0.imageInsets = UIEdgeInsets(top: 6, left: 0, bottom: -6, right: 0)
})
(如果您在其中配置了每个标签栏项,也可以在ViewController类中进行此操作。)
您还可以通过使用情节提要来执行此操作,方法是在情节提要中选择TabBarItem并在信息面板中调整插图: