Per impostazione predefinita in UITabbar, è presente un'evidescenza lucida sull'UITabBarItem selezionato.Come rimuovere l'evidenziazione lucida su UITabBarItem selezionato in iOS?
È possibile rimuovere la maschera di evidenziazione lucida?
Grazie.
Per impostazione predefinita in UITabbar, è presente un'evidescenza lucida sull'UITabBarItem selezionato.Come rimuovere l'evidenziazione lucida su UITabBarItem selezionato in iOS?
È possibile rimuovere la maschera di evidenziazione lucida?
Grazie.
[[UITabBar appearance] setSelectionIndicatorImage:[UIImage {anImage}]]
questo ha effetto su ogni barra delle linguette si utilizza (anche quelli sottoclasse)
Se si utilizza un'immagine qui che ha lo stesso colore come sfondo TabBar, è solito vedere un indicatore.
Forse si può anche usare un'immagine completamente trasparente o un'immagine che è 1px * 1px.
Nel caso in cui si personalizzino gli elementi della barra delle schede con immagini personalizzate, è possibile eseguire tale operazione. Ho personalizzato gli elementi della barra delle schede aggiungendo un'immagine di sfondo alla barra delle schede con tutte le schede disegnate, una scheda nello stato selezionato e altre in stato non selezionato. In ogni didelectViewController ho cambiato l'immagine di sfondo. Quindi, porto in primo piano la vista dell'immagine di sfondo e aggiungo etichette personalizzate con il titolo necessario.
Risultato: ho una barra delle linguette personalizzata senza effetto lucido. Interessante è che UITabBarButtons sono sotto l'immagine di sfondo, ma ancora selezionabili.
il codice è qualcosa di simile:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
[self customizeTabBar];
}
- (void)customizeTabBar {
NSString *imageName = [NSString stringWithFormat:@"tabbg%i.png", tabBarCtrl.selectedIndex + 1];
for(UIView *view in tabBarCtrl.tabBar.subviews) {
if([view isKindOfClass:[UIImageView class]]) {
[view removeFromSuperview];
}
}
UIImageView *background = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:imageName]] autorelease];
[tabBarCtrl.tabBar insertSubview:background atIndex:0];
[tabBarCtrl.tabBar bringSubviewToFront:background];
//if needed, here must be adding UILabels with titles, I didn't need it.
}
Forse saranno interessati su questo :)
dove dovrei aggiungere questo codice? – chatur
in tale UIViewController
Grazie mille Mitya .. !! – chatur
[[UITabBar appearance] setSelectionIndicatorImage:[[UIImage alloc] init]];
funziona come un fascino!
Qualcuno dovrebbe contrassegnare questo come corretto .. <3 –
Risposta eccellente, ma essere consapevoli del fatto che ciò influirà su TUTTI UITabBars, anche su quelli che sono sottoclassi. –
Secondo Apple's documentazione è possibile implementare:
(void)setFinishedSelectedImage:
(UIImage *)selectedImage withFinishedUnselectedImage:
(UIImage *)unselectedImage
che è un metodo UITabBar
Usa http://ioscodesnippet.tumblr.com/post/9247898208/creating -un-segnaposto -immagine-dinamicamente-con-colore per creare l'immagine chiara. Funziona alla grande. – nh32rg