2013-11-14 6 views
1

Я пытаюсь установить заголовок моего пункта навигации, установив для него UILabel. Код по существу работает, но моя проблема заключается в том, что при загрузке View на секунду или около того UILabel запускается в позиции, определенной CGRectMake, а в верхней и средней части панели навигации, где она принадлежит. Есть ли способ по умолчанию, когда запуск UILabel начинается в правильной позиции?Почему моя navigationItem.titleView не начинается в середине моей панели навигации?

Очевидная работа заключается в том, чтобы установить начальное положение с экрана, чтобы оно было скрыто, а затем через несколько секунд UILabel перемещается в нужное место. но это, кажется, «неправильный» способ выполнить то, что мне нужно. ниже приведен код.

@property (nonatomic, strong) UILabel *titleView; 

...

self.titleView = [[UILabel alloc] initWithFrame:CGRectMake(20.0f, 0.0f, 150.0f, 128.0f)]; 
self.titleView.font = [UIFont systemFontOfSize:10.0f]; 
self.titleView.text = @"My title"; 
self.navigationItem.titleView = self.titleView; 

ответ

0

По умолчанию выравнивание текста в UILabel установлен слева, так что вам нужно, чтобы сделать его центр программно.

Попробуйте это,

self.titleView = [[UILabel alloc] initWithFrame:CGRectMake(20.0f, 0.0f, 150.0f, 128.0f)]; 
self.titleView.font = [UIFont systemFontOfSize:10.0f]; 
self.titleView.text = @"My title"; 
[self.titleView setTextAlignment:NSTextAlignmentCenter]; //ADD THIS 
self.navigationItem.titleView = self.titleView; 
+0

Привет, спасибо за ответ. Моя проблема заключается не в том, что текст смещен, а в том, что весь ярлык неуместен. – user2970395

0

Попробуйте

self.titleView = [[UILabel alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 150.0f,44.0f)]; 
[self.titleView setTextAlignment:UITextAlignmentCenter]; 
0

я решил мою проблему, как таким образом

UILabel * label = [[[UILabel alloc] initWithFrame:CGRectMake(0,0,45,45)] autorelease]; 
label.textColor = [UIColor whiteColor]; 
label.backgroundColor = [UIColor clearColor]; 
label.font = [UIFont boldSystemFontOfSize:20]; 
self.navigationItem.titleView = label; 
label.text = @"Customer"; //CUSTOM TITLE 
[label sizeToFit]; 
+0

Эй, поэтому я добавил авторейтинг, но он дал мне эту ошибку: «autorelease» недоступен: недоступен в автоматическом режиме подсчета ссылок » – user2970395

+0

удалите функцию автореферата! – Retro

+0

lol, я думал, что это была функция, которая должна была исправить мою проблему. – user2970395

Смежные вопросы