2013-09-26 2 views
0

У меня есть UITabBarController, который я пытаюсь изменить. В настоящее время изображения с иконками невыделенного вкладки по умолчанию являются серыми. Я знаю, что вы не можете программным образом изменить оттенок этих изображений с невыразимым изображением. Apple говорит, что оттенок контролируется фактическим оттенком самого файла png. Поэтому, если вам нужно изображение с белым или зеленым значком, вам нужно использовать png, который отображает изображение как белый или зеленый и т. Д. После этого вы должны использовать UIImageRenderingModeAlwaysOriginal AND initWithTitle: image: selectedImage: я использовал этот код в моем FirstViewController.m и Я поместил его в - (void) viewDidLoad. Тем не менее, я получаю проблему синтаксического анализа: ожидаемый идентификатор и его указание на скобки после нуля. Кто-нибудь видит проблему с этим кодом?UITabBarController unselected icon image tint

// 
// 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. 
} 

ответ

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

Но это трудно читать, если вам нужно, чтобы вернуться к нему позже, так что не делать что.