更改默认 "Not Selected" UITabBarItem 图像颜色
Change Default "Not Selected" UITabBarItem Image Color
我们如何更改 "Not Selected" 或 UITabBarItem 中图标的非高亮状态?
我尝试设置 UITabBarItem.appearance().setTitleTextAttributes(:) 但它只会更改文本颜色。
有什么想法吗?
如果您想更改 iOS 7 及更高版本中的默认值,您必须实际使用不同的图标(使用您希望未选中的选项卡具有的颜色)并设置文本的颜色。您可以应用此调整,而不是创建两组图标:
// set the selected colors
[self.tabBar setTintColor:[UIColor whiteColor]];
[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIColor whiteColor], NSForegroundColorAttributeName, nil] forState:UIControlStateSelected];
UIColor * unselectedColor = [UIColor colorWithRed:184/255.0f green:224/255.0f blue:242/255.0f alpha:1.0f];
// set color of unselected text
[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:unselectedColor, NSForegroundColorAttributeName, nil]
forState:UIControlStateNormal];
// generate a tinted unselected image based on image passed via the storyboard
for(UITabBarItem *item in self.tabBar.items) {
// use the UIImage category code for the imageWithColor: method
item.image = [[item.selectedImage imageWithColor:unselectedColor] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
}
Source.
在 swift 选项卡栏项目图标中以其自己的图像显示,因此您可以应用自己的预设
var myImage = UIImage(named: "someImageName")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate)
myImageView.tintColor = UIColor.redColor()
myImageView.image = myImage
单独使用'xcode'即可完成。将两组重复的 'images' 添加到 'Assets.xcassets'。将第二组图像命名为不同的名称,例如,将它们命名为'yourNameSelected'。设置 'Render As Original Image' 属性 为第一组(unselected)图标:
将这些图像设置为未selected 位置:
将 'yourNameSelected' 重复图像设置为选定图像,然后转到选项卡栏属性检查器和 select 您需要的 select 选项卡颜色所需的图像色调。
如果您的目标低于 ios10,您需要为两个状态导入彩色图像并将它们渲染为原始图像。
我们如何更改 "Not Selected" 或 UITabBarItem 中图标的非高亮状态?
我尝试设置 UITabBarItem.appearance().setTitleTextAttributes(:) 但它只会更改文本颜色。
有什么想法吗?
如果您想更改 iOS 7 及更高版本中的默认值,您必须实际使用不同的图标(使用您希望未选中的选项卡具有的颜色)并设置文本的颜色。您可以应用此调整,而不是创建两组图标:
// set the selected colors
[self.tabBar setTintColor:[UIColor whiteColor]];
[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIColor whiteColor], NSForegroundColorAttributeName, nil] forState:UIControlStateSelected];
UIColor * unselectedColor = [UIColor colorWithRed:184/255.0f green:224/255.0f blue:242/255.0f alpha:1.0f];
// set color of unselected text
[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:unselectedColor, NSForegroundColorAttributeName, nil]
forState:UIControlStateNormal];
// generate a tinted unselected image based on image passed via the storyboard
for(UITabBarItem *item in self.tabBar.items) {
// use the UIImage category code for the imageWithColor: method
item.image = [[item.selectedImage imageWithColor:unselectedColor] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
}
Source.
在 swift 选项卡栏项目图标中以其自己的图像显示,因此您可以应用自己的预设
var myImage = UIImage(named: "someImageName")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate)
myImageView.tintColor = UIColor.redColor()
myImageView.image = myImage
单独使用'xcode'即可完成。将两组重复的 'images' 添加到 'Assets.xcassets'。将第二组图像命名为不同的名称,例如,将它们命名为'yourNameSelected'。设置 'Render As Original Image' 属性 为第一组(unselected)图标:
将这些图像设置为未selected 位置:
将 'yourNameSelected' 重复图像设置为选定图像,然后转到选项卡栏属性检查器和 select 您需要的 select 选项卡颜色所需的图像色调。
如果您的目标低于 ios10,您需要为两个状态导入彩色图像并将它们渲染为原始图像。