UITabBar 栏项图标默认是灰色的?
UITabBar bar item icons are gray by default?
谁能告诉我 Swift 2.0 如何在我的 UITabBar 图标中覆盖 Xcode 的默认灰色?这个问题不适合我:Tab bar item icons appear darker.
您需要为 UITabBarItem 设置颜色,否则您必须设置 In UITabBarItem 以及您需要为 UITabBarItem 设置 imageInsets 就像 UITabBarItem 是
let customTabBarItem:UITabBarItem = UITabBarItem(title: nil, image: UIImage(named: "favorites.png")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal), selectedImage: UIImage(named: "favorites_h.png")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal))
和 imageInset :
customTabBarItem.imageInsets = UIEdgeInsetsMake(5, 0, -5, 0)
在我的第一个视图控制器的 viewDidLoad 中,我放置了以下内容并且它非常有效:
let aTabArray: [UITabBarItem] = (self.tabBarController?.tabBar.items)!
for item in aTabArray {
item.image = item.image?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
item.imageInsets = UIEdgeInsetsMake(7, 0, -7, 0)
}
对于 iOS13+,我使用下面的代码设置 UITabBar 项目标题和图标颜色以支持深色模式。
if #available(iOS 13, *) {
let appearance = UITabBarAppearance()
appearance.shadowImage = UIImage()
appearance.shadowColor = .white
appearance.stackedLayoutAppearance.normal.iconColor = .label
appearance.stackedLayoutAppearance.normal.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.label]
// appearance.stackedLayoutAppearance.normal.badgeBackgroundColor = .yellow
appearance.stackedLayoutAppearance.selected.iconColor = .myGreen
appearance.stackedLayoutAppearance.selected.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.myGreen]
self.tabBar.standardAppearance = appearance
}
谁能告诉我 Swift 2.0 如何在我的 UITabBar 图标中覆盖 Xcode 的默认灰色?这个问题不适合我:Tab bar item icons appear darker.
您需要为 UITabBarItem 设置颜色,否则您必须设置 In UITabBarItem 以及您需要为 UITabBarItem 设置 imageInsets 就像 UITabBarItem 是
let customTabBarItem:UITabBarItem = UITabBarItem(title: nil, image: UIImage(named: "favorites.png")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal), selectedImage: UIImage(named: "favorites_h.png")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal))
和 imageInset :
customTabBarItem.imageInsets = UIEdgeInsetsMake(5, 0, -5, 0)
在我的第一个视图控制器的 viewDidLoad 中,我放置了以下内容并且它非常有效:
let aTabArray: [UITabBarItem] = (self.tabBarController?.tabBar.items)!
for item in aTabArray {
item.image = item.image?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
item.imageInsets = UIEdgeInsetsMake(7, 0, -7, 0)
}
对于 iOS13+,我使用下面的代码设置 UITabBar 项目标题和图标颜色以支持深色模式。
if #available(iOS 13, *) {
let appearance = UITabBarAppearance()
appearance.shadowImage = UIImage()
appearance.shadowColor = .white
appearance.stackedLayoutAppearance.normal.iconColor = .label
appearance.stackedLayoutAppearance.normal.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.label]
// appearance.stackedLayoutAppearance.normal.badgeBackgroundColor = .yellow
appearance.stackedLayoutAppearance.selected.iconColor = .myGreen
appearance.stackedLayoutAppearance.selected.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.myGreen]
self.tabBar.standardAppearance = appearance
}