2011-01-15 36 views
6

UINavigationBarでカスタムフォントを設定するにはどうすればよいですか?私はtahomaフォントが必要です。UINavigationBarでカスタムフォントを設定するにはどうすればよいですか?

- (void)viewDidLoad{ 
    self.title [email protected]"My text"; 
} 

alt text

+1

Tahomaフォントは、Microsoftが所有しています。ライセンスの側面を整理したら、私たちに知らせてください。コーディングについてお手伝いします。 :-) –

+0

しかし、iphoneは組み込みのtahomaフォントを持っています。私はライセンスが必要です。 – Voloda2

+2

Tahomaはビルトインフォントの1つではありません – grahamparks

答えて

21

完全に可能、行うことは少しトリッキー場合。必要なフォント(既にiOSに同梱されている選択肢の1つ、または適切なライセンスを取得したTTFファイル)を見つけたら、サイズ、書式、フォントなどを含むUILabelを作成してから追加してくださいそのバーのナビゲーション項目に移動します(または、表示コントローラーでこれを行う場合は、そのコントローラーの.navigationItem.titleViewをラベルに設定します)。

たとえば、私はUINavigationControllerの中にビューコントローラを持っています。上のラベルをカスタムフォントに変更するには、次のようにします。

//...I have already setup a UILabel called navLabel that has the same style as a 
// default navigation bar title, but I've changed the .font property to my custom font 
self.navigationItem.titleView = navLabel; 
[navLabel release]; 
+0

あなたは答えを編集して、[this one](http://daringfireball.net/misc/2007/07/iphone-osx-fonts);)のような利用可能なフォントのリストを指すようにすることもできます –

+1

Or [this one ](http://iosfonts.com)。 –

17

このコードは機能するはずです。あなたは[:ビューnavigationController.navigationBar addSubview]を使用してナビゲーションバーにもっと何かを追加できるようにカスタムビューを結果としては、透明な背景を持っている

- (void)viewDidLoad 
{ 
     [super viewDidLoad]; 

     int height = navigationController.navigationBar.frame.size.height; 
     int width = navigationController.navigationBar.frame.size.width; 

     UILabel *navLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, width, height)]; 
     navLabel.backgroundColor = [UIColor clearColor]; 
     navLabel.textColor = [UIColor whiteColor]; 
     navLabel.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5]; 
     navLabel.font = [UIFont boldSystemFontOfSize:15]; 
     navLabel.textAlignment = UITextAlignmentCenter; 
     self.navigationItem.titleView = navLabel; 
     [navLabel release]; 
} 

注:あなたのメインのUIを提供するのUIViewControllerで。これは、バーの左隅にあるスピナーやその他のものです。

カスタムビューを使用すると、uiviewcontroller titleでタイトルを設定できなくなります。カスタム表示で利用可能な方法を使用する必要があります。

例:

((UILabel *)self.navigationItem.titleView).text = title; 
関連する問題