默认情况下,在UITabbar中,所选UITabBarItem上有一个光泽的高亮显示。
是否可以删除光面高光蒙版?
感谢。
答案 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方法