具有自定义标题颜色和图像的UITabBarItem

6
我想自定义我的Xcode,iOS中的TabBar,但我发现有人说这是不可定制的! 我也找到了一些解决方案,但都不适用于我。
我想改变UITabBarItem的标题(文本)颜色,并更改其中的2个图像:普通图像和选定图像!
我尝试迭代我的UITabBar子视图,看看是否能找到一些信息,但没有成功。
for (UIView *view in [self.tabBarController tabBar].subviews) 
{
    NSLog(@"Class: %@",[view class]);

}

这个的输出结果是:
2011-05-18 18:15:24.031 EventApp[52235:207] Class: UIImageView
2011-05-18 18:15:24.032 EventApp[52235:207] Class: UITabBarButton
2011-05-18 18:15:24.032 EventApp[52235:207] Class: UITabBarButton
2011-05-18 18:15:24.033 EventApp[52235:207] Class: UITabBarButton
2011-05-18 18:15:24.033 EventApp[52235:207] Class: UITabBarButton
2011-05-18 18:15:24.034 EventApp[52235:207] Class: UITabBarButton

我无法导入UITabBarButton对象以与其一起使用!

有没有解决方案?下面是我查看但无效的一些链接!

iPhone上自定义UITabBarItem图像/标题

更改UITabBarItem的文本颜色

编辑 我想做的是类似于以下内容: enter image description here

3个回答

9

7

我是其中一个认为这并不起作用的人。你需要在自定义的UIViewController中重新实现整个功能,该控制器充当UITabBar替代品。

就像Twitter for iPhone或Tweetbot一样做的那样。

输入图像描述


真的吗??!我已经发布了我想做的事情!有什么简单的解决方案吗?!我已经将背景颜色更改为图像!现在只缺少标签和按钮! - Arthur Neves
3
没问题,请发给我需要翻译的内容。这是原文:This is right. From http://idevrecipes.com/2010/12/16/raised-center-tab-bar-button/ A UITabBar contains an array of UITabBarItems, which inherit from UIBarItem. But unlike UIBarButtonItem that also inherits from UIBarItem, there is no API to create a UITabBarItem with a customView. Either you overlap a button or you roll your own component fresh. - Jano

2
完全不可定制。你只能使用苹果提供的内容(用于形状和标题的掩模图像)或自己创建。一个适合我的方法是子类化选项卡栏。使用自己的子视图使选项卡栏看起来符合您的要求。例如:使用背景图像,并动态地将其叠加到每个tabBarItem的按钮上。这样,您仍然可以在Interface Builder中配置选项卡栏,并免费切换选项卡栏内容。同时,选项卡栏将会按照您的要求显示。

你能发一下代码吗?我是说,至少是drawRect!还是你没有实现它?! - Arthur Neves
不,我没有使用drawRect。我使用一张320x49的图像作为背景,这覆盖了所有现有的选项卡。然后我使用自己的UIControls(由几个CALayers组成的动画效果)来制作我的按钮。我只重新使用(即子类化)选项卡栏,以便我可以在Interface Builder中配置它,并仍然可以使用UITabBarController。否则,它就像一个自定义控件,只是看起来像一个选项卡栏。 - Joris Kluivers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接