如何在 UITabBarItem 中垂直居中 SF Symbols 图像?

ios*_*per 5 uikit uitabbaritem uitabbar ios sf-symbols

我在我的 iOS 应用程序中使用 SF Symbols 图像作为标签图像,方法如下:

self.tabBarItem.image = UIImage(systemName: "ellipsis")  
Run Code Online (Sandbox Code Playgroud)

这导致所有图像顶部对齐,但我希望它们垂直居中。

我该怎么做?

das*_*tag 10

显然,SF 符号默认以系统字体大小呈现。因此,如果您向省略号符号添加一半大小的基线偏移量,您几乎可以完美地以这种方式垂直居中。

它几乎是完美的,因为省略号符号有自己的高度,这个解决方案没有考虑到这个高度,即使它并不多。

self.tabBarItem.image = UIImage(systemName: "ellipsis")!.withBaselineOffset(fromBottom: UIFont.systemFontSize / 2)
Run Code Online (Sandbox Code Playgroud)


小智 5

最好的解决方案将使您的按钮与“tabBarSystemItem:.more”相同,但可以删除标题并应用配置,如下所示:

self.tabBarItem.image = UIImage(systemName: "ellipsis", withConfiguration: 
UIImage.SymbolConfiguration(weight: .black))!.imageWithoutBaseline()
Run Code Online (Sandbox Code Playgroud)