[iOS5]UIBarButtonItemのDisabled時の色とフォントサイズを変える方法

UIBarButtonItemを、UIToolBarに載せるとことによって、UIToolBar上でいろいろな情報を表示することが出来ますね。Label的に使用したいときは、タップしても何も反応しない様に、Disabledにする必要がありますが、そうすると、文字のテキストの色が変わってしまいます。

UIBarButtonItem 無効時の表示
UIBarButtonItem 無効時の表示

これを、きれいに表示するための方法です。
UIBarButtonItem の属性をセットした後
UIBarButtonItem の属性をセットした後

このように設定する方法を記述します。

iOS5で、追加された、setTitleTextAttributesメソッドを使用します。

-(void) viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
for (UIBarButtonItem* item in _toolBarBottom.items) {
[item setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor],UITextAttributeTextColor, nil] forState:UIControlStateDisabled];
[item setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor],UITextAttributeTextColor,[UIFont systemFontOfSize:16],UITextAttributeFont, nil] forState:UIControlStateNormal];
}
}

ポイントは、FontSizeは、UIControlStateDisabledに設定しても効果がないので、UIControlStateNormalに設定する必要があるという事です。iOS5は細かい設定が自由に聞く様になっているので便利になっていますね。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください