プログラミングノート

一からものを作ることが好きなエンジニアの開発ブログです。

UIBarButtonItemの色を変更する方法

UIToolBarに設置するボタンの色を変更したい場合があるかと思います。色の変更はUINavigationBarなどと同様、tintColorでさくっとできるだろうと思いきやAPIにアクセスできません。


CustomViewで画像を利用したボタンを表示する方法などもありますが、下記のようにすればtintColorを利用することができます。


// Toolbar生成
UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 460-44, 320, 44)];
toolbar.barStyle = UIBarStyleBlackTranslucent;
[self.view addSubview:toolbar];
	
UIBarButtonItem *button1 = [[UIBarButtonItem alloc] initWithTitle:@"Button" style:UIBarButtonItemStyleBordered target:self action:@selector(action)];
UIBarButtonItem *button2 = [[UIBarButtonItem alloc] initWithTitle:@"Button" style:UIBarButtonItemStyleBordered target:self action:@selector(action)];
UIBarButtonItem *button3 = [[UIBarButtonItem alloc] initWithTitle:@"Button" style:UIBarButtonItemStyleBordered target:self action:@selector(action)];	
NSArray *items = [NSArray arrayWithObjects:button1, button2, button3, nil];
[toolbar setItems:items];	
[button1 release];	
[button2 release];	
[button3 release];	

// 最後のボタンの色変更
UIView *v = [[toolbar subviews] lastObject];
if([v respondsToSelector:@selector(setTintColor:)]){
  [v performSelector:@selector(setTintColor:) withObject:[UIColor redColor]];
}