1

当标签未选中时,我正在尝试更改标签栏图标的颜色。现在颜色是默认灰色,当它被选中时,我可以将颜色更改为我想要的任何颜色。

Apple 的开发库表示要将图像渲染更改为“原始”而不是其默认模式“模板”。我这样做了。然后它说使用initWithTitle:image:selectedImage:我也尝试这样做,但我认为那是我搞砸的地方。我在 viewcontroller.m 文件中写了这个。这里有什么问题?

- (void)viewDidLoad
{
    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.
    UIImage *stat = [UIImage imageNamed:@"white_stats.png"];
    stat = [stat imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

    (instancetype)initWithTitle:(NSString *)nil image:(UIImage *)stat selectedImage:(UIImage *)stat;

}
4

1 回答 1

2

问题是您在两个地方都使用相同UIImage的 with 。UIImageRenderingModeAlwaysOriginal

您的代码应该类似于

 UIImage *stat = [UIImage imageNamed:@"white_stats.png"];
 UIImage *statAlwaysOriginal = [stat imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
 self.tabBarItem = [[UITabBarItem alloc] initWithTitle:nil image:statAlwaysOriginal selectedImage:stat];

另一件事是您的帖子中有一些实际的语法错误(在 UITabBarItem 初始化中,但我怀疑您只是错误地粘贴了它。

于 2013-09-25T21:56:06.597 回答