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

このエントリーをはてなブックマークに追加
はてなブックマーク - [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は細かい設定が自由に聞く様になっているので便利になっていますね。

Comments

comments

Powered by Facebook Comments

Post a comment

You may use the following HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">