iPhone: pestaña personalizada sin el horrible menú Más
Así que quería crear una barra de pestañas que tenga más de 5 elementos y que se pueda desplazar y encontréEste artícul. Fácil de hacer al subclasificar el UITabBarController y ocultar la barra de pestañas existente:
for(UIView *view in self.view.subviews)
{
if([view isKindOfClass:[UITabBar class]])
{
view.hidden = YES;
break;
}
}
Entonces solo agrego un UIScrollView y lanzo algunos botones en función de la colección de elementos del controlador de barra de pestañas.
int i = 0;
for (UITabBarItem *item in self.tabBar.items)
{
UIView *tab = [[[UIView alloc] initWithFrame:CGRectMake(i*60, 0, 60, 60)] autorelease];
UIButton *btn = [[[UIButton alloc] initWithFrame:CGRectMake(7.5, 1, 45, 45)] autorelease];
[btn setImage:item.image forState:UIControlStateNormal];
btn.tag = i;
[btn addTarget:self action:@selector(didSelectTabrBarItem:) forControlEvents:UIControlEventTouchUpInside];
[tab addSubview:btn];
[self.scrollView addSubview:tab];
i++;
if(self.selectedViewController == nil)
[self setSelectedIndex:0];
}
stoy anulando el setSelectedindex / ViewController ya que necesito un dibujo adicional.
-(void)setSelectedViewController:(UIViewController *)selectedViewController
{
[super setSelectedViewController:selectedViewController];
[self startTimer];
}
-(void)setSelectedIndex:(NSUInteger)selectedIndex
{
[super setSelectedIndex:selectedIndex];
[self startTimer];
}
El problema es que cuando presiono el botón número 5, 6 o 7, el controlador de barra de pestañas abre la vista Más. ¿Cómo me deshago de eso y hago que los últimos tres elementos actúen como los otros? - ¿Podría ser la llamada al súper?
Supongo que sería matar completamente el UITabBarController e implementar mi propia barra de pestañas personalizada. ¿Pero es posible deshabilitar el menú más y hacer que el UITabBarController seleccione los elementos 5, 6 y 7 de forma normal?