Estoy creando una aplicación con una barra de navegación personalizada. Después de algunas investigaciones, decidí hacer esto usando una categoría en UINavigationBar. La barra de navegación debe ser un poco más grande de lo normal para acomodar una sombra paralela. Aquí está el código:iOS: Posicionamiento de los botones de la barra de navegación dentro de la barra de navegación personalizada
#import "UINavigationBar+CustomWithShadow.h"
@implementation UINavigationBar (CustomWithShadow)
- (void)drawRect:(CGRect)rect {
// Change the tint color in order to change color of buttons
UIColor *color = [UIColor colorWithHue:0.0 saturation:0.0 brightness:0.0 alpha:0.0];
self.tintColor = color;
// Add a custom background image to the navigation bar
UIImage *image = [UIImage imageNamed:@"NavBar.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, 60)];
}
- (void)layoutSubviews {
self.frame = CGRectMake(0, 20, self.frame.size.width, 60);
}
@end
El único problema ahora es que la barra de navegación más grande significa que los botones de la barra de navegación terminan demasiado lejos, así:
¿alguien sabe cómo Puedo corregir la posición de los botones?
¡Gracias por toda ayuda!
Actualización:
que añadir los botones de la barra de navegación en el método init del controlador de vista de este modo:
// Create "Add" button for the nav bar
UIBarButtonItem *addButton = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemAdd
target:self
action:@selector(createNewEntry:)];
[[self navigationItem] setRightBarButtonItem:addButton];
[addButton release];
¿Cómo se agrega el 'UIBarButtonItem' a la barra? ¿Y donde? Hice una pequeña prueba en la que agregué los btns mediante NIB y todo parece estar bien. –
Los agrego en el método init del controlador de vista, usando '[[self navigationItem] setRightBarButtonItem: addButton];' por ejemplo. ¿Cómo puedo agregar los botones a través de NIB? –