更改默认的“未选中”UITabBarItem图像颜色

9 浏览
0 Comments

更改默认的“未选中”UITabBarItem图像颜色

如何更改UITabBarItem中的“未选择”或未高亮状态的图标?

我尝试了设置UITabBarItem.appearance().setTitleTextAttributes(:),但它只会更改文字颜色。

有什么想法吗?

![图片描述](https://i.stack.imgur.com/PEc8Y.jpg)

0
0 Comments

问题描述:如何更改默认的“未选中”UITabBarItem图像颜色?

问题出现原因:在Swift中,UITabBarItem的图像默认是根据原始图像的颜色显示的。然而,有时候我们希望能够改变默认的“未选中”图像的颜色,以便与选中状态的图像有所区别。

解决方法:我们可以使用UIImage的imageWithRenderingMode方法来更改默认的“未选中”图像颜色。具体实现步骤如下:

1. 首先,导入UIKit框架:

import UIKit

2. 创建一个UIImage对象,并使用imageNamed方法加载图像文件:

var myImage = UIImage(named: "someImageName")

3. 使用imageWithRenderingMode方法将图像渲染模式设置为AlwaysTemplate,以便能够更改图像的颜色:

myImage = myImage?.withRenderingMode(.alwaysTemplate)

4. 创建一个UIImageView对象,并将其图像设置为经过渲染模式修改后的图像:

var myImageView = UIImageView()

myImageView.image = myImage

5. 使用tintColor属性将“未选中”图像的颜色设置为所需的颜色:

myImageView.tintColor = UIColor.red

通过以上步骤,我们就可以成功改变默认的“未选中”UITabBarItem图像的颜色了。

通过使用UIImage的imageWithRenderingMode方法和UIImageView的tintColor属性,我们可以轻松地改变默认的“未选中”UITabBarItem图像的颜色,以便与选中状态的图像有所区别。

0
0 Comments

问题的原因是在UITabBar中,默认的“Not Selected”图像颜色无法更改。解决方法是通过使用Xcode,在Assets.xcassets中添加两组重复的图像,将第一组图像设置为“Render As Original Image”,并将第二组图像设置为所需的选中标签颜色。

解决方法如下:

1. 在Xcode的Assets.xcassets中添加两组重复的图像。

2. 将第一组图像命名为“yourName”,将第二组图像命名为“yourNameSelected”。

3. 为第一组图像设置“Render As Original Image”属性,确保它们在未选中的状态下保持原始颜色。

4. 将第一组图像设置为未选中的位置的图像。

5. 将第二组图像设置为选中的位置的图像。

6. 进入UITabBar的属性检查器,并选择所需的选中标签颜色。

7. 如果您的目标版本低于iOS 10,则需要为两个状态导入彩色图像,并将其都设置为原始图像。

使用以上方法,您可以改变默认的“Not Selected” UITabBarItem图像颜色。

0
0 Comments

问题的原因是在iOS 7及以上版本中,想要改变未选中的UITabBarItem图像的颜色需要使用不同的图标,并设置文本的颜色。解决方法是通过以下方式进行调整:

1. 设置选中的颜色

[self.tabBar setTintColor:[UIColor whiteColor]];

[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIColor whiteColor], NSForegroundColorAttributeName, nil] forState:UIControlStateSelected];

2. 设置未选中的文本颜色

UIColor * unselectedColor = [UIColor colorWithRed:184/255.0f green:224/255.0f blue:242/255.0f alpha:1.0f];

[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:unselectedColor, NSForegroundColorAttributeName, nil] forState:UIControlStateNormal];

3. 根据通过storyboard传递的图像生成一个带有着色的未选中图像

for(UITabBarItem *item in self.tabBar.items) {
   item.image = [[item.selectedImage imageWithColor:unselectedColor] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
}

这样就能够改变默认的“未选中”UITabBarItem图像的颜色了。更多详细信息可参考这里

0