Dibujando un CAGradientLayer
da un aspecto muy uniforme, pero - en mi opinión - una sombra que parece bastante antinatural.
Aquí hay un enfoque alternativo basado en la respuesta a la pregunta UIView with shadow.
Utiliza las diversas propiedades de sombra de CALayer
para dar el efecto de sombra:
#pragma mark - View lifecycle
- (void)viewDidLoad
{
[super viewDidLoad];
self.navigationController.navigationBar.layer.shadowColor = [[UIColor blackColor] CGColor];
self.navigationController.navigationBar.layer.shadowOffset = CGSizeMake(0.0f,0.0f);
self.navigationController.navigationBar.layer.shadowOpacity = 1.0f;
self.navigationController.navigationBar.layer.shadowRadius = 4.0f;
}
La misma técnica trabaja con el tabBarController
's tabBar
;
self.tabBarController.tabBar.layer.shadowColor = [[UIColor blackColor] CGColor];
self.tabBarController.tabBar.layer.shadowOffset = CGSizeMake(0.0f,0.0f);
self.tabBarController.tabBar.layer.shadowOpacity = 1.0f;
self.tabBarController.tabBar.layer.shadowRadius = 4.0f;
Intentando implementar esto en un Controlador de Vista y sin ver nada ... – fuzz
Asegúrese de tener una instancia de controlador de navegación? Parece que su barra de navegación apunta a nulo. – marcio