alinear verticalmente UINavigationItems
He personalizado la altura de UINavigationBar a 100px y me gustaría agregar botones a esta barra personalizada.
Todo está bien, excepto que el botón parece querer sentarse en la parte inferior de la barra de navegación sin importar qué. No consigo que se alinee con el centro o la parte superior de la barra de navegación.
Aquí está el código; primero creo un controlador de navegación en el delegado de la aplicación y agrego un botón a la derecha.
// set main navigation controller
temp *tempc = [[temp alloc] initWithNibName:@"temp" bundle:nil];
self.navigationController = [[UINavigationController alloc] initWithRootViewController:tempc];
UIBarButtonItem *navItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:nil action:nil];
[tempc.navigationItem setRightBarButtonItem:navItem];
[self.window addSubview:self.navigationController.view];
[self.window makeKeyAndVisible];
luego cambio el tamaño de la barra de navegación en el controlador de vista "temp" de la siguiente manera:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
CGRect frame = CGRectMake(0.0f, 0.0f, 320.0f, 100.0f);
[self.navigationController.navigationBar setFrame:frame];
[self.navigationController.navigationBar setAutoresizingMask:UIViewAutoresizingFlexibleBottomMargin];
}
También he intentado agregar una vista personalizada a la derechaBarButtonItem pero no puedo hacer que la vista personalizada agregada toque la parte superior por completo.
Y el código para este desafortunado intento:
// set main navigation controller
temp *tempc = [[temp alloc] initWithNibName:@"temp" bundle:nil];
self.navigationController = [[UINavigationController alloc] initWithRootViewController:tempc];
UIView *customView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 36.0f, 80.0f)];
[customView setBackgroundColor:[UIColor blueColor]];
UIButton *customButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[customButton setFrame:CGRectMake(0, 22.0f, 36.0f, 36.0f)];
[customButton setTitle:@"+" forState:UIControlStateNormal];
[customView addSubview:customButton];
UIBarButtonItem *customItem = [[UIBarButtonItem alloc] initWithCustomView:customView];
¿Alguien sabe cómo alinear verticalmente UIBarButtonItems en un UINavigationBar?