Bouton au milieu de navigationBar

Je veux créer une barre de navigation personnalisée.

Je sais que nous pouvons utiliser UIButton au milieu au lieu du titre dans la barre de navigation, mais pouvons-nous faire quelque chose qui ressemble à cette image?

Comme vous le voyez, nous avons trois buttons différents au milieu de cette barre de navigation. Pouvez-vous partager votre idée avec moi sur la façon dont nous pouvons implémenter une telle chose sur iPhone?

En supposant que vous utilisez un controller de navigation, vous pouvez définir la propriété titleView de votre barre de navigation sur un conteneur UIView qui contient les trois buttons au milieu (et les deux sets de trois points). Le code ressemblerait à ceci:

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; 

Ou vous pourriez faire tout cela dans IB bien sûr.

Essayez ceci si vous utilisez un UINavigationController

  1. changer l'image de fond de votre barre de navigation avec [self.navigationController.navigationBar setBackgroundImageForBarMesortingcs:]
  2. [self.navigationItem setLeftBarButtonItem:] buttons gauche et droit avec [self.navigationItem setLeftBarButtonItem:] et [self.navigationItem setRightBarButtonItem:] . Vous devrez probablement utiliser UIBarButtonItem avec un UIButton en tant que vue personnalisée ici pour se débarrasser de la bordure.
  3. mettre les trois buttons au milieu comme ça

(vous devez probablement changer les dimensions)

 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;