7

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

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

4

3 回答 3

11

设置标题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);
于 2015-03-12T11:15:08.727 回答
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"]];
    

因此,现在当用户按下任何选项卡选项卡栏更改背景以显示正确的图片时。

这是我选择第二个选项卡时生成的选项卡栏:

没有标签的标签栏

于 2013-08-13T17:11:57.167 回答
0

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

1、将横条原点y调低,将屏幕外的空白推开。

2、重置背景,确保它刚好覆盖正确的位置。

于 2015-01-08T06:25:18.173 回答