2011-08-21 65 views

回答

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

如果使用這裏的圖像具有色彩爲您的TabBar背景相同的這對每次使用的TabBar(甚至是子類的)

效果,你不會看到一個指標。

也許你甚至可以使用全透明圖像或1px * 1px的圖像。

+2

使用http://ioscodesnippet.tumblr.com/post/9247898208/creating -a-placeholder-uiimage-dynamic-with-color創建清晰的圖像。很棒。 – nh32rg

5

如果您使用自定義圖像自定義標籤欄項目,您可能會這樣做。 我製作了自定義標籤欄項目,方法是將背景圖像添加到選項卡欄中,繪製所有選項卡,選定狀態中的一個選項卡以及未選中狀態的其他選項卡。在每個didSelectViewController我改變背景圖像。 比,我把背景圖像視圖放在前面,並添加所需標題的自定義標籤。

結果:我自定義標籤欄沒有光澤效果。有趣的是,UITabBarButtons在背景圖片下,但仍然可以選擇。

的代碼是類似的東西:

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

} 

也許你會有興趣瞭解這個:)

+0

我應該在哪裏添加此代碼? – chatur

+2

在這個UIViewController 中,它實現了你的標籤欄控制器的委託。每個標籤欄項目需要整個標籤欄面板的圖像,表示處於選定狀態的當前項目圖片,其他處於默認狀態。根據選定的標籤索引,背景被替換爲 - (void)customizeTabBar – Mitya

+0

非常感謝Mitya .. !! – chatur

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

就像一個魅力!

+3

有人應該將此標記爲正確。<3 –

+0

優秀的答案,但請注意,這將影響所有UITabBars,即使是子類也是如此。 –

1

根據Apple's文檔,你可以實現:

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

這是中的UITabBar一樣的方法

Here´s the link.