如何删除iOS中所选UITabBarItem上的光泽高亮?

时间:2011-08-21 09:50:14

标签: iphone ios ipad

默认情况下,在UITabbar中,所选UITabBarItem上有一个光泽的高亮显示。

是否可以删除光面高光蒙版?

感谢。

4 个答案:

答案 0 :(得分:60)

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

像魅力一样!

答案 1 :(得分:6)

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

这会影响您使用的每个标签栏(甚至是子标签栏)

如果您在此处使用与标签栏背景颜色相同的图片,则不会看到指示符。

也许你甚至可以使用完全透明的图像,或者是1px * 1px的图像。

答案 2 :(得分: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.

}  

也许你会对此感兴趣:)

答案 3 :(得分:1)

根据Apple的文档,您可以实施:

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

哪个是UITabBar方法

Here´s the link.