2013-10-11 9 views
12

iOS7用のアプリをいくつか変換しており、ツールバーに配置されているボタンのテキストに問題があります。 フォントサイズがはるかに大きく、サイズを変更できないように見えます。だから、iOS6でうまくフィットしたテキストボタンはもう使えない。画面の幅が十分ではありません。アプリ全体をやり直すことなくこれを調整することは可能ですか?なぜこの愚かな変化?私は実際にいくつかの他の理由のアプリケーションをiOS7に適応させたい。iOS7のツールバーアイテムのフォントサイズ

答えて

22

setTitleTextAttributes:forState:を使用して、UIBarItems(UIBarButtonItemsを含む)のタイトルテキスト属性を設定できます。たとえば、すべてのUIBarButtonItemsのタイトルテキストのフォントを設定するには、あなたがこれを行うことができます:

[[UIBarButtonItem appearance] setTitleTextAttributes:@{NSFontAttributeName : [UIFont boldSystemFontOfSize:9.0]} forState:UIControlStateNormal]; 

それとも、ただ一つ、

[myBarButton setTitleTextAttributes:@{NSFontAttributeName : [UIFont boldSystemFontOfSize:9.0]} forState:UIControlStateNormal]; 

のためにそれを設定するためにまたUIButtonsが含まれているUIBarButtonItemsを作成することができ、それらのUIButtonの表示方法(フォント、フォントサイズなど)を完全に制御できます。これはあなたのUIToolbarの上に、またはコードにUIButtonをドラッグすることで、Interface Builderで行うことができます:あなたは、このアプローチを取る場合は、あなたのIBActions/segues代わりにUIBarButtonItemのUIButtonにフックアップする必要があります

UIButton* button = ...; 
UIBarButtonItem* barButton = [[UIBarButtonItem alloc] initWithCustomView:button]; 
[toolbar setItems:@[barButton, ...] animated:YES]; 

注意。

+0

は非常にすぐにそれをしようとします。 –

0

スウィフト:

UIToolbar.appearance().barTintColor = TOOLBAR_BACKGROUND_COLOR 

if let font = UIFont(name: "AvenirNext-DemiBold", size: 15) { 
     UIBarButtonItem.appearance().setTitleTextAttributes([NSFontAttributeName: font,NSForegroundColorAttributeName:TOOLBAR_TITLE_COLOR], forState: UIControlState.Normal) 

    }