UITabBarController未选中的图标图像色调

时间:2013-09-26 18:43:51

标签: objective-c uitabbarcontroller ios7 xcode5

我有一个我想修改的UITabBarController。现在,UNselected选项卡图标图像是默认灰色。我知道您无法以编程方式更改这些未选择的图标图像的色调。 Apple说色调是由png文件本身的实际色调控制的。因此,如果你想要一个白色或绿色图标图像,那么你必须使用一个png,将图像显示为白色或绿色等。之后你必须使用UIImageRenderingModeAlwaysOriginal和initWithTitle:image:selectedImage:我在我的FirstViewController.m中使用了这个代码我把它放在 - (void)viewDidLoad中。但是,我得到一个解析问题:期望的标识符及其指向nil之后的括号。有人看到这个代码的问题吗?

//
//  FirstViewController.m
//  tabmock5
//
//  Created by USER on 9/26/13.
//  Copyright (c) 2013 USER. All rights reserved.
//

#import "FirstViewController.h"

@interface FirstViewController ()

@end

@implementation FirstViewController

- (void)viewDidLoad
{
[[UIImage imageNamed:@"white_stats.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

[self.tabBarItem initWithTitle:[nil]image:[UIImage imageNamed:@"white_stats.png"]selectedImage:[UIImage imageNamed:@"white_stats.png"]];

[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}

1 个答案:

答案 0 :(得分:3)

[[UIImage imageNamed:@"white_stats.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

这不是将图像保存在任何地方。将其更改为:

UIImage *myImage = [[UIImage imageNamed:@"white_stats.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

而且:

[self.tabBarItem initWithTitle:[nil]image:[UIImage imageNamed:@"white_stats.png"]selectedImage:[UIImage imageNamed:@"white_stats.png"]];

nil不是对象(它不在方括号中)。将其更改为:

[self.tabBarItem initWithTitle:nil image:myImage selectedImage:[UIImage imageNamed:@"white_stats.png"]];

或者,您可以在一行中从技术上完成此操作:

[self.tabBarItem initWithTitle:nil image:[[UIImage imageNamed:@"white_stats.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] selectedImage:[UIImage imageNamed:@"white_stats.png"]];

但是如果你以后需要再回来它很难读,所以不要这样做。