2015-04-17 2 views
0

Я борюсь в пользовательский UINavigationBar. Причина, по которой я хочу настроить, - это то же самое действие, которое может быть выполнено в другом контроллере. В качестве примера я размещаю несколько изображений.Как настроить UINavigationBar

Navigation Bar - 1 Navigation Bar - 2 Navigation Bar - 3

Как видно из приведенных выше изображений. Я думаю, вы понимаете, что я имею в виду. Я пытался и искал, но я не получаю ответ, который мне нужен. Кроме того, я попытался использовать UIView, чтобы выполнить это, это сработало, но я не думаю, что это правильный способ сделать это. Поэтому мне нужна помощь от вас, ребята, чтобы привести меня к правильному пути. :) :) Спасибо.

ответ

0

Вы можете настроить пользовательский вид названия на навигационную панель, как этот путь.

//To hide default back button 
self.navigationItem.hidesBackButton=YES; 

//Title View for Navigation 
UIView *navTitle1 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 44)]; 
[navTitle1 setBackgroundColor:[UIColor lightGrayColor]]; 

//Left View button and separator 
UIButton *backBarButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 50, 44)]; 
[backBarButton setTitle:@"Back" forState:UIControlStateNormal]; 

UIView *ttlview1 = [[UIView alloc] initWithFrame:CGRectMake(51, 0, 1, 44)]; 
[ttlview1 setBackgroundColor:[UIColor darkGrayColor]]; 


//Center view with two buttons and seprator for them 
UIView *middleView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 121, 44)]; 
[middleView setBackgroundColor:[UIColor clearColor]]; 
[middleView setCenter:navTitle1.center]; 

UIButton *postBarButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 60, 44)]; 
[postBarButton setTitle:@"Post" forState:UIControlStateNormal]; 

UIView *ttlview2 = [[UIView alloc] initWithFrame:CGRectMake(middleView.frame.size.width/2, 0, 1, 44)]; 
[ttlview2 setBackgroundColor:[UIColor darkGrayColor]]; 

UIButton *memeBarButton = [[UIButton alloc] initWithFrame:CGRectMake((middleView.frame.size.width/2)+1, 0, 60, 44)]; 
[memeBarButton setTitle:@"Meme" forState:UIControlStateNormal]; 

[middleView addSubview:ttlview2]; 
[middleView addSubview:postBarButton]; 
[middleView addSubview:memeBarButton]; 

//Right button with seprator before that 
UIView *ttlview3 = [[UIView alloc]  initWithFrame:CGRectMake(self.view.frame.size.width-71, 0, 1, 44)]; 
[ttlview3 setBackgroundColor:[UIColor darkGrayColor]]; 

Для получения более подробной информации вы можете обратиться к THIS.

+0

Это что я делал раньше. Правильно ли это сделать, а не настраивать. – tan

+0

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

0

Вы можете создать 2 пользовательского UIBarButtonItem из 2 просмотров, используя этот документ:

яблочной документации: Инициализирует новый элемент, используя указанный пользовательский вид.

- (id)initWithCustomView:(UIView *)customView 

Параметры customView: Пользовательский вид, представляющий элемент. Возвращаемое значение Новый инициализированный элемент с указанными свойствами.

  • Элемент в левой части: 1 вид содержит 3 кнопки: Проект, Киара Парадиз, Впечатление художника.

  • Правая стрелка: 1 изображение содержит 4 кнопки: Зарегистрироваться | Вход (кнопка профиля при входе пользователя) | Гамбургер меню

Тогда:

  • self.navigationItem.leftBarButtonItem = UIBarButtonItem слева настраиваемое представление
  • self.navigationItem.rightBarButtonItem = UIBarButtonItem с правой заказ Посмотреть
Смежные вопросы