Подтвердить что ты не робот

Кнопка в центре навигацииБар

Я хочу создать панель навигации для пользователя.

Я знаю, что мы можем использовать UIButton в середине вместо заголовка на панели навигации, но можем ли мы сделать что-то похожее на это изображение?

Как вы видите, у нас есть три разных кнопки в середине этой панели навигации. Можете ли вы поделиться со мной своей идеей, как мы можем реализовать такую ​​вещь в iPhone?

4b9b3361

Ответ 1

Предполагая, что вы используете контроллер навигации, вы можете установить свойство titleView navigationBar в контейнер UIView, который содержит три кнопки в середине (и два набора из трех точек). Код будет выглядеть примерно так:

    UIView *buttonContainer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 44)];
    buttonContainer.backgroundColor = [UIColor clearColor];
    UIButton *button0 = [UIButton buttonWithType:UIButtonTypeCustom];
    [button0 setFrame:CGRectMake(0, 0, 44, 44)];
    [button0 setBackgroundImage:[UIImage imageNamed:@"button0.png"] forState:UIControlStateNormal];
    [button0 addTarget:self action:@selector(button0Action:) forControlEvents:UIControlEventTouchUpInside];
    [button0 setShowsTouchWhenHighlighted:YES];
    [buttonContainer addSubview:button0];

    //add your spacer images and button1 and button2...

    self.navigationItem.titleView = buttonContainer;  

Или вы могли бы сделать это все в IB, конечно.

Ответ 2

Попробуйте, если вы используете UINavigationController

  • измените фоновое изображение панели навигации с помощью [self.navigationController.navigationBar setBackgroundImageForBarMetrics:]
  • установите левую и правую кнопки с помощью кнопок [self.navigationItem setLeftBarButtonItem:] и [self.navigationItem setRightBarButtonItem:]. Вам, вероятно, придется использовать UIBarButtonItem с UIButton как пользовательский вид здесь, чтобы избавиться от границы.
  • установите три кнопки посередине, как показано ниже.

(вам, вероятно, придется изменить размеры)

UIView *buttonView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 180, 40)];
UIButton *button1 = [UIButton buttonWithType:UIButtonTypeCustom];
button1.imageView.image = [UIImage imageNamed:@"button1.png"];
button1.frame = CGRectMake(0, 0, 40, 40);

UIButton *button2 = [UIButton buttonWithType:UIButtonTypeCustom];
button2.imageView.image = [UIImage imageNamed:@"button2.png"];
button2.frame = CGRectMake(70, 0, 40, 40);

UIButton *button3 = [UIButton buttonWithType:UIButtonTypeCustom];
button3.imageView.image = [UIImage imageNamed:@"button3.png"];
button3.frame = CGRectMake(140, 0, 40, 40);

[buttonView addSubview:button1];
[buttonView addSubview:button2];
[buttonView addSubview:button3];

self.navigationItem.titleView = buttonView;