我正在尝试创建一个UITabBar,我将使用外观API进行自定义。我一直试图从UITabBarItem中删除标题标签并调整图像大小以使其居中。如果您只是删除标题文本,则图像下方和栏底部将显示空白区域。
有没有人知道如何制作没有标题的UITabBarItem?
答案 0 :(得分:8)
将标题设置为nil
并移动图标
self.tabBarItem = [[UITabBarItem alloc] initWithTitle:nil
image:[[UIImage imageNamed:@"icon_tabbar_inactive.png"]
imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]
selectedImage:[[UIImage imageNamed:@"icon_tabbar_active.png"]
imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
// Move the tabbar icon to the middle of tabbar
self.tabBarItem.imageInsets = UIEdgeInsetsMake(6.0, 0.0, -6.0, 0.0);
答案 1 :(得分:7)
今天做了同样的任务。
由于我无法使用标签栏的完整空间作为项目图像,我只需在用户按任意标签时更改标签栏背景。
因此,第一步是为所选的每个标签准备带有全尺寸按钮的背景图像。
然后创建自定义类并将其分配给标签栏控制器
在ViewDidLoad中第一个标签的自定义类设置背景图片中:
[[self tabBar] setBackgroundImage:[UIImage imageNamed:@"tabShopsActive"]];
[[self tabBar] setSelectionIndicatorImage:[UIImage imageNamed:@"tabSelection"]];
为ViewWillAppear中的每个UIController添加后台更改:
UITabBarController *bar = [self tabBarController];
[bar.tabBar setBackgroundImage:[UIImage imageNamed:@"tabDiscountsActive"]];
所以现在当用户按任意选项卡标签栏更改背景以显示正确的图片时。
选择第二个标签时,这是我生成的标签栏:
答案 2 :(得分:0)
我对同样问题的解决方案:
1,使条形原点y降低,推动屏幕外的空白区域。
2,重置背景以确保它只是覆盖正确的位置。