iOS 7:UITabBarItem徽章z-index
我想在selectionIndicatorImage
上方显示一个UITabBarItem
徽章。 有3个屏幕截图:
截图
浅灰色是selectionIndicatorImage
。 是的,徽章看起来不错。 当我在云端图标UITabBar
里面变成:
这是错误的..我想在select图像上方显示徽章。 如果没有UITabBar
图标 – 它看起来不错。
我该如何解决这个问题? 提前致谢。
编辑
我在故事板中添加了图标。 对于我制作的代码:
UITabBarItem *cartTabBarItem = (UITabBarItem *)[self.tabBarController.tabBar.items objectAtIndex:3]; if ([[DataSourceWrapper getInstance] getFullCost] == 0) cartTabBarItem.badgeValue = nil; else cartTabBarItem.badgeValue = [NSString stringWithFormat:@"%.0f тнг", [[DataSourceWrapper getInstance] getFullCost]];
对于selectionIndicatorImage
[[UITabBar appearance] setSelectionIndicatorImage:[UIImage imageNamed:@"selected-tabbar-bg.png"]];
我知道这有点棘手,但我认为苹果没有按照正确的顺序添加TabBar子视图。 无论如何,我已经解决了以下的方式
for (UIView *subview in marketTrackerAppDelegate.tabBarController.tabBar.subviews) { if ([marketTrackerAppDelegate.tabBarController.neededController.tabBarItem respondsToSelector:@selector(view)] && [marketTrackerAppDelegate.tabBarController.neededController.tabBarItem performSelector:@selector(view)] == subview) { [marketTrackerAppDelegate.tabBarController.tabBar bringSubviewToFront:subview]; break; } }
我遇到过同样的问题。 您可以使用@ dollar8build议的代码修复它,或更改UITabBarItems创build的顺序。
我有第四选项卡与第四选项卡的第五个选项卡重叠徽章的徽章和SelectionIndicatorImage,所以首先我设置第五选项卡:
UIImage *item5image = [UIImage imageNamed:@"profile_tabbar_item"]; UIImage *item5imageSel = [UIImage imageNamed:@"profile_tabbar_item_selected"]; item5image = [item5image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; item5imageSel = [item5imageSel imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; tab5.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"" image:item5image selectedImage:item5imageSel];
并设置第4个标签后:
UIImage *item4image = [UIImage imageNamed:@"messages_tabbar_item"]; UIImage *item4imageSel = [UIImage imageNamed:@"messages_tabbar_item_selected"]; item4image = [item4image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; item4imageSel = [item4imageSel imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; tab4.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"" image:item4image selectedImage:item4imageSel];
子视图的顺序是正确的。 当我设置第5个选项卡之前的第4个选项卡 – SelectionIndicatorImage覆盖徽章视图。