2011-08-21 21 views

Odpowiedz

6
[[UITabBar appearance] setSelectionIndicatorImage:[UIImage {anImage}]] 

to ma wpływ na każdą im zakładkami używasz (nawet podklasy nich)

Jeśli używasz tutaj obraz, który ma taki sam kolor jak tło swojej umieszczenie zakładek, przyzwyczajenie zobaczyć wskaźnika.

Być może można nawet użyć pełnego przezroczystego obrazu lub obrazu o 1px * 1px.

+2

Zastosowanie http://ioscodesnippet.tumblr.com/post/9247898208/creating -a-placeholder-uiimage-dynamicznie-z-kolorem, aby stworzyć czysty obraz. Działa świetnie. – nh32rg

5

Jeśli dostosowujesz elementy paska tabulacji do niestandardowych obrazów, możesz zrobić coś takiego. Spersonalizowałem elementy paska kart, dodając obraz tła do paska kart ze wszystkimi rysowanymi kartami, jedną kartą w wybranym stanie i innymi w stanie niezaznaczonym. W każdym didSelectViewController zmieniam obraz tła. Niż przynoszę widok obrazu tła na wierzch i dodam własne etykiety z wymaganym tytułem.

Wynik: Mam dostosowany pasek kart bez efektu połysku. Interesujące jest to, że UITabBarButtons są pod obrazem tła, ale nadal można je wybierać.

Kod jest coś takiego:

- (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. 

} 

Może zainteresuje Cię o tym :)

+0

gdzie powinienem dodać ten kod? – chatur

+2

w tym UIViewController , który implementuje delegata kontrolera paska kart. Potrzebujesz obrazu dla całego panelu paska zakładek dla każdego elementu paska karty, reprezentującego bieżący obraz elementu w wybranym stanie i innych w domyślnym stanie. Zgodnie z wybranym wskaźnikiem tabulacji tło jest zastępowane w - (void) customizeTabBar – Mitya

+0

Wielkie dzięki Mitya .. !! – chatur

60
[[UITabBar appearance] setSelectionIndicatorImage:[[UIImage alloc] init]]; 

działa jak marzenie!

+3

Ktoś powinien oznaczyć to jako poprawne. <3 –

+0

Doskonała odpowiedź, ale należy pamiętać, że wpłynie to na WSZYSTKIE UITABBary, nawet te, które są podklasami. –

1

Według Apple's Dokumentacji można wdrożyć:

(void)setFinishedSelectedImage: 
     (UIImage *)selectedImage withFinishedUnselectedImage: 
     (UIImage *)unselectedImage 

który jest sposobem UITabBar

Here´s the link.

Powiązane problemy