2011-01-15 3 views
6

Как настроить пользовательский шрифт в UINavigationBar? Мне нужен шрифт тахома.Как настроить пользовательский шрифт в UINavigationBar?

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

alt text

+1

шрифт Tahoma принадлежит Microsoft. После того, как вы разобрали лицензионную сторону, сообщите нам, и мы поможем вам с кодировкой. :-) –

+0

Но у iphone есть встроенный шрифт tahoma. Мне нужны лицензии. – Voloda2

+2

Tahoma не является одним из встроенных шрифтов – grahamparks

ответ

21

Полностью возможно, если немного сложно сделать. Как только вы найдете нужный шрифт (либо одну из альтернатив, уже поставляемых с iOS, либо 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

для полноты вы можете отредактировать ответ, указав также на список доступных шрифтов, таких как [этот] (http://daringfireball.net/misc/2007/07/iphone-osx-fonts);) –

+1

Или [этот ] (http://iosfonts.com). –

17

Этот код должен работать. В UIViewController, который представляет ваш главный интерфейс:

- (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]; 
} 

Обратите внимание, что в результате пользовательский вид имеет прозрачный фон, так что вы можете добавить что-то еще в навигационной панели с [navigationController.navigationBar addSubview: вид]. Это может быть прядильщик в левом углу бара или что-то еще.

Если вы используете пользовательский вид, вы больше не сможете использовать заголовок с названием uiviewcontroller. Вам нужно использовать способ, доступный для вашего пользовательского представления.

Пример:

((UILabel *)self.navigationItem.titleView).text = title;