Code? – Design?

2711月/11Off

navigationItemのUIBarButtonItemを好きな色にする

チャオ!

iOS5からはUIBarButtonItemにもtintColorが設定できるようになって超めでたしめでたしと思っていたらiOS4で死ねと言われて使えねーって状態になりました。

そこで画像とか用意しないで好きな色のボタン置けないかと探してたらいい方法が!

以下な感じでやればOKです!

- (void)viewDidLoad {
[super viewDidLoad];
UIColor *color = [UIColor colorWithRed:0.30 green:0.70 blue:0.00 alpha:1.0];
self.navigationItem.rightBarButtonItem =
[self barButtonItemWithTint:color
                      title:@"test"
                     target:self
                   selector:@selector(test:)];
}

-(UIBarButtonItem *)barButtonItemWithTint:(UIColor *)color title:(NSString *)title target:(id)target selector:(SEL)selector
{
	UISegmentedControl *btn = [[[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:title, nil]] autorelease];
	btn.momentary = YES;
	btn.segmentedControlStyle = UISegmentedControlStyleBar;
	btn.tintColor = color;
	[btn addTarget:target action:selector forControlEvents:UIControlEventValueChanged];

	UIBarButtonItem *barBtn = [[[UIBarButtonItem alloc] initWithCustomView:btn] autorelease];

	return barBtn;
}

・・・・鬼の見づらさですね・・・
ようはUIBarButtonItemにtintColorのあるsegmentedControlをつっこんで、代わりにしようねっ♪って感じです。

ただし角丸の通常ボタンしか駄目なので、戻るとかはやっぱ画像がいるんだろうな・・・

UIBarButtonItemを作ってくれる関数はどこからでも呼べるようにしているといいかと思います!

以下のサイトから学びました!
How to change the color of a UIBarButtonItem


Filed under: 未分類 Comments Off
Comments (0) Trackbacks (0)

Sorry, the comment form is closed at this time.

Trackbacks are disabled.