自定义UITabBarItem没有标题标签

时间:2012-10-07 17:41:14

标签: ios uitabbar uitabbaritem

我正在尝试创建一个UITabBar,我将使用外观API进行自定义。我一直试图从UITabBarItem中删除标题标签并调整图像大小以使其居中。如果您只是删除标题文本,则图像下方和栏底部将显示空白区域。

有没有人知道如何制作没有标题的UITabBarItem?

3 个答案:

答案 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)

今天做了同样的任务。

由于我无法使用标签栏的完整空间作为项目图像,我只需在用户按任意标签时更改标签栏背景。

  1. 因此,第一步是为所选的每个标签准备带有全尺寸按钮的背景图像。

  2. 然后创建自定义类并将其分配给标签栏控制器

  3. 在ViewDidLoad中第一个标签的自定义类设置背景图片中:

    [[self tabBar] setBackgroundImage:[UIImage imageNamed:@"tabShopsActive"]];
    [[self tabBar] setSelectionIndicatorImage:[UIImage imageNamed:@"tabSelection"]];
    
  4. 为ViewWillAppear中的每个UIController添加后台更改:

    UITabBarController *bar = [self tabBarController];
    [bar.tabBar setBackgroundImage:[UIImage imageNamed:@"tabDiscountsActive"]];
    
  5. 所以现在当用户按任意选项卡标签栏更改背景以显示正确的图片时。

    选择第二个标签时,这是我生成的标签栏:

    Tab bar without labels

答案 2 :(得分:0)

我对同样问题的解决方案:

1,使条形原点y降低,推动屏幕外的空白区域。

2,重置背景以确保它只是覆盖正确的位置。