0

我有一个正在尝试修改的 UITabBarController。现在,未选择的选项卡图标图像默认为灰色。我知道您无法以编程方式更改这些未选择的图标图像的色调。苹果表示,色调由 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.
}
4

1 回答 1

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"]];

但是,如果您稍后需要返回它,这很难阅读,所以不要这样做。

于 2013-09-26T19:28:39.700 回答