estoy usando el fragmento de código de Tito añadir un botón personalizado a mi barra de pestañas: https://github.com/tciuro/CustomTabBarCómo ocultar botón de la barra de pestañas personalizado cuando hidesBottomBarWhenPushed es "TRUE"
(subclases UITabBarController y la adición de un botón personalizado usando
// .. created a UIButton *button
[self.view addSubview:button];
)
Esto funciona muy bien con mi aplicación basada en el guión gráfico, excepto para el caso de una vista secundaria dentro de un controlador de navegación con la opción "oculta la barra inferior de empuje" habilitado. Esto oculta la barra de pestañas según lo prometido, pero no el botón personalizado. Parece que el botón debe agregarse como una subvista a la barra de pestañas. Probé este código feo que ni siquiera hacer que el botón aparezca:
for(UIView *view in self.view.subviews)
{
if([view isKindOfClass:[UITabBar class]])
{
[view addSubview:button];
break;
}
}
¿Alguna idea?
ACTUALIZACIÓN: Mi solución: En mi ApplicationDelegate i definir los métodos siguientes, que llamo siempre que sea necesario en los métodos viewWillAppear o viewWillDisappear:
-(void)hideCenterButton:(BOOL)animated
{
if(animated){
[UIView animateWithDuration:0.3
delay:0.0f
options:UIViewAnimationCurveLinear
animations:^{
CGRect frame = self.centerButton.frame;
frame.origin.x = -100;
self.centerButton.frame = frame;
}
completion:^(BOOL finished){
}];
}
}
-(void)showCenterButton:(BOOL)animated
{
if(animated){
[UIView animateWithDuration:0.35
delay:0.0f
options:UIViewAnimationCurveLinear
animations:^{
CGRect frame = self.centerButton.frame;
frame.origin.x = (self.view.superview.frame.size.width/2) - (self.centerButton.frame.size.width/2);
self.centerButton.frame = frame;
}
completion:^(BOOL finished){
}];
}
}
tuviera que definir la duración de la animación a 0,35 s para obtener un efecto suave en armonía con la barra de pestañas.
Oye, 'UIViewAnimationCurveLinear' lanzará una advertencia, en su lugar deberías usar' UIViewAnimationOptionCurveLinear'. – abriggs
Después de algunas pruebas, parece que la opción de animación más natural es 'UIViewAnimationOptionCurveEaseInOut' – abriggs
Probé su código y funciona, pero el botón devuelve detrás de la barra de pestañas, ¿alguna solución a este problema? – xeravim