ios - una - Personalizar la barra de navegación de la interfaz de usuario y el botón
patrones de diseño movil (5)
Crea una imagen de 1x1 píxeles con el color que quieras. A continuación, agregue el siguiente código a su clase AppDelegate .
UIImage *btnBgColor = [[UIImage imageNamed:@"backColor"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
[[UIBarButtonItem appearance] setBackgroundImage: btnBgColor
forState:UIControlStateNormal
barMetrics:UIBarMetricsDefault];
O
Escriba el código a continuación en su clase base viewController, luego convierta esta clase en la superclase de todos sus otros controladores de vista.
UIButton* yourButton = [UIButton buttonWithType:UIButtonTypeCustom];
yourButton.layer.backgroundColor = [UIColor redColor].CGColor;
UIBarButtonItem* buttonItem = [[UIBarButtonItem alloc] initWithCustomView: yourButton];
self.navigationBar.leftBArButtonItems = @[buttonItem];
Primero debe configurar la barra de navegación, suponiendo que su primera pantalla es SpalshViewController, necesita configurar la pantalla de bienvenida como un controlador de vista raíz para la barra de navegación y luego establecer la barra de navegación como controlador de vista raíz como:
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
SplashScreenVC *obj =[CustomUtility getViewController:@"SplashScreenVC"];
self.navigationController =[[UINavigationController alloc] initWithRootViewController:obj];
self.window.rootViewController =self.navigationController;
en didFinishLaunchingWithOptions
Ahora, para personalizar la configuración y apariencia de la barra de navegación, debe configurar:
self.navigationController.navigationBar.translucent = NO;
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"top_bg2.png"] forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor],NSFontAttributeName:[UIFont fontWithName:@"Lato-Regular" size:18]}];
Ahora, al configurar los botones de la barra personalizada para la barra de navegación, debe crear elementos de barra de botones como:
UIBarButtonItem *leftbtn;
UIBarButtonItem *rightbtn;
[self.navigationController.navigationItem setLeftBarButtonItem:leftbtn];
[self.navigationController.navigationItem setRightBarButtonItem:rightbtn];
personalizar barbuttonItems
acuerdo a su necesidad
Si desea establecer más de un botón en la barra de navegación, puede agregar como:
UIBarButtonItem *leftbtn1;
UIBarButtonItem *leftbtn2;
UIBarButtonItem *rightbtn1;
UIBarButtonItem *rightbtn2;
[self.navigationController.navigationItem setLeftBarButtonItems:@[leftbtn1,leftbtn2]];
[self.navigationController.navigationItem setRightBarButtonItems:@[rightbtn1,rightbtn2]];
Espero que te sea útil
Puede agregar su botón personalizado en la barra de navegación como:
UIButton *btnObj = [UIButton buttonWithType:UIButtonTypeCustom];
[btnObj setFrame:CGRectMake(0, 0, 60, 44)];
[btnObj setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter];
[btnObj setImage:[UIImage imageNamed:@"<button background image>"] forState:UIControlStateNormal];
[btnObj addTarget:self action:@selector(btnObjClick:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *itemBtnObj = [[UIBarButtonItem alloc] initWithCustomView:btnObj];
self.navigationItem.rightBarButtonItems = [[NSArray alloc]initWithObjects:itemBtnObj, nil];
Puedes hacerlo desde el storyboard en sí. Arrastra la barra de navegación UIN
Personalice su navegación usando imágenes o colores de fondo dándoles sombras.
Agregar elemento de navegación
también puede personalizarlos usando imágenes o colores e imágenes y posición según los requisitos.
Para agregar restricciones a la misma, remítame a mi ans. Agregar restricciones a un UIBarButtonItem
Espero que ayude ... Feliz codificación ... :)