没有标题标签的自定义 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