2012-07-21 3 views
8

Sto tentando di implementare un UITabBar nascosto nella mia app. Ho impostato tutte le animazioni e funzionano molto bene. Sto solo avendo problemi a ottenere il mio UIButton "pull-tab" per mostrare la barra delle schede. Non risponde all'evento touch UIControlEventTouchUpInside. aggiungo la linguetta di estrazione per l'UITabBar nella UITabBarController:Aggiungere un UIButton come sottoview a un UITabBar

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
//Add pull 
    pullButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
    UIImage *image = [UIImage imageNamed:@"TabBarPull.png"]; 
    pullButton.frame = CGRectMake(self.tabBar.frame.size.width - image.size.width, -image.size.height + 3, image.size.width, image.size.height); 
    [pullButton setImage:image forState:UIControlStateNormal]; 
    [pullButton addTarget:self action:@selector(pullBarTapped:) forControlEvents:UIControlEventTouchUpInside]; 
    pullButton.userInteractionEnabled = YES; 
    [self.tabBar addSubview:pullButton]; 
} 

Ecco cosa la barra delle schede si presenta come aperto e chiuso:

TabBar not hidden TabBar Hidden

Edit: ho determinato il problema è che il pulsante non rientra nel frame di UITabBar. Sembra che dovrò mettere il pulsante all'esterno dell'UITabBar ... Incubo di animazione.

+0

Bene, è POSSIBILE che si possa sottoclasse UITabBar, capire come utilizzare la sottoclasse in UITabBarController (sottoclasse), quindi nella sottoclasse UITabBar creare un frame più grande, far utilizzare UITabbar al frame normale, ma ora la sottoclasse dovrei ottenere tutti i tocchi ecc. Se fossi in me, dovrei prima provare a creare la sottoclasse UITabBar in un progetto dimostrativo, solo quando ciò funziona, cercherò di farlo funzionare con tutti gli altri macchinari. In bocca al lupo! –

+0

@Brandon Mcq Hey Sto cercando la stessa cosa ... hai mai trovato una buona soluzione? Grazie! – RyanG

+0

@Brandon Mcq Ho appena visto il tuo github, dando un'occhiata a questo grazie! – RyanG

risposta

12

si può ancora aggiungere il UIButton alla vista principale 's il UITabBarController, non nel UITabBar però .... [myUITabBarController.view addSubview:pullButton]

+4

Questo ha funzionato, grazie. Ho creato un progetto di esempio e l'ho messo su github. [Link] (http://github.com/Marxon13/HideableTabBar) –

0

Dal momento che hai la parte nascondiglio lavoro all'interno del UITabBar e dalla risposta che ho visto qui , una alternativa sarebbe mantenere UIButton all'interno di UITabbar ma aggiungere anche il pulsante alla vista quando UITabbar è nascosto (quindi avrai due pulsanti sovrapposti). Quando viene visualizzata la barra delle schede, nascondere il pulsante che è stato aggiunto alla vista utilizzando la proprietà nascosta nella vista.