通常の場合、UITabBarItem
の画像の表示位置をずらす方法として、imageInsets
を変更する方法があります。
tabBarItem.imageInsets = UIEdgeInsets(top: 10, left: 0, bottom: -10, right: 0)
しかし、SF Symbols
のシンボルイメージだとこの方法で位置をずらせなかったため、調べた方法を共有したいと思います。
.withBaselineOffset(fromBottom: CGFloat)
let houseImage = UIImage(systemName: "house.fill")?.withBaselineOffset(fromBottom: 10)
let tabBarItem = UITabBarItem(title: nil, image: houseImage, tag: 0)
シンボルイメージに.withBaselineOffset(fromBottom: 10)
を設定することで、画像を下に10ずらすことができます。
今回は画像のみ表示したいのでtitle
はnil
にしています。
また、.withConfiguration(UIImage.SymbolConfiguration(weight: .bold))
などでシンボルイメージのサイズやweightを変えることもできます。
参考