Как я могу установить собственный шрифт в UINavigationBar? - PullRequest
6 голосов
/ 15 января 2011

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

- (void)viewDidLoad{
    self.title =@"My text";
}

alt text

Ответы [ 2 ]

21 голосов
/ 15 января 2011

Вполне возможно, если сделать немного сложнее.Как только вы нашли нужный шрифт (либо одну из альтернатив, уже поставленных с 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];
17 голосов
/ 20 февраля 2012

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

- (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: view]. Это может быть вертушка в левом углу бара или что-то еще.

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

Пример:

((UILabel *)self.navigationItem.titleView).text = title;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...