没有标题标签的自定义 UITabBarItem

Posted

技术标签:

【中文标题】没有标题标签的自定义 UITabBarItem【英文标题】:Custom UITabBarItem without title label 【发布时间】:2012-10-07 17:41:13 【问题描述】:

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

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

【问题讨论】:

您确定在调用initWithTitle:image:tag: 并为标题传递 nil 以及指向图像的有效指针时,您仍然会丢失像素到空标题吗? 是的,它会在底部显示一些空白像素并将图像向上移动。例如,当 bar 高度只比 item 图片大一点时,图片顶部会被截断,下面会有空白 【参考方案1】:

将标题设置为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);

【讨论】:

【参考方案2】:

今天做了同样的任务。

由于我不能将标签栏的全部空间用于项目图像,我只需在用户按下任何标签时更改标签栏背景。

    所以第一步是为每个选定的选项卡准备带有全尺寸按钮的背景图片。

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

    在您的自定义类中为 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"]];
    

所以现在当用户按下任何选项卡时,Tab Bar 会更改背景以显示正确的图片。

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

【讨论】:

【参考方案3】:

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

1、将条形原点y降低,将空白推到屏幕外。

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

【讨论】:

以上是关于没有标题标签的自定义 UITabBarItem的主要内容,如果未能解决你的问题,请参考以下文章

我的 Joomla 模板正在使用 JS 加载我的自定义 CSS。有没有办法将唯一版本标签添加到我的自定义 CSS 中?即:custom.css?20180101

使用情节提要创建的没有标题的自定义 UITabbarItem

找到数据时表格视图中的自定义标签文本?目标c

jsp的自定义标签

JFreeChart DTSC 上的自定义 X 轴标签

我希望文本框、按钮、标签等基本表单控件具有相同的自定义方法