【问题标题】:UITabBarItem with custom title color and images具有自定义标题颜色和图像的 UITabBarItem
【发布时间】:2011-08-28 10:41:48
【问题描述】:

我正在尝试在 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 obj 来使用它!

对此有什么解决方案?!我还发布了一些我看过的链接,但没有用!

Custom UITabBarItem Image/Title on iPhone

changing text color of uitabbaritem

编辑 我想做的是如下所示:

【问题讨论】:

    标签: iphone xcode view uitabbar


    【解决方案1】:

    在 iOS 5.0 及更高版本中,您可以Customize UITabBar's Appearance 通过更改色调颜色、背景图像和选择指示器,使它们看起来像您喜欢的样子。

    您还可以通过调用setFinishedSelectedImage:withFinishedUnselectedImage: 方法将完成的选定和未选定图像作为参数来自定义各个UITabBarItem。

    或者,修改 UITabBar 的 appearance proxy 允许您更改其所有实例的外观。

    【讨论】:

      【解决方案2】:

      我是说它真的行不通的人之一。您必须在充当 UITabBar 替代品的自定义 UIViewController 中重新实现整个功能。

      就像 iPhone 版 Twitter 或 Tweetbot 一样。

      【讨论】:

      • 真的!??!我发布了我想做的事!任何简单的解决方案?!我已经将背景颜色更改为图像!现在只是缺少标签和按钮!
      • 这是对的。来自idevrecipes.com/2010/12/16/raised-center-tab-bar-button 一个UITabBar 包含一个UITabBarItems 数组,它继承自UIBarItem。但与同样继承自 UIBarItemUIBarButtonItem 不同,没有 API 可以创建带有 customView 的 UITabBarItem 要么重叠按钮,要么重新滚动自己的组件。
      【解决方案3】:

      完全不可定制。你要么使用 Apple 提供给你的任何东西(形状和标题的蒙版图像),要么你自己滚动。

      对我有用的一种方法是将标签栏子类化。使用您自己的子视图使标签栏看起来像您想要的那样。例如:使用背景图像并动态覆盖每个 tabBarItems 的按钮。

      这样您仍然可以在Interface Builder中配置标签栏,并且您可以免费切换标签栏内容。同时,标签栏将按照您想要的方式显示。

      【讨论】:

      • 你能贴出代码吗,我的意思是,至少是drawRect!还是你没有实现它?!
      • 不,我没有使用 drawRect。我使用 320x49 图像作为背景,这涵盖了所有现有的选项卡。然后我使用我自己的 UIControls(由几个用于动画效果的 CALayer 组成)作为我自己的按钮。我只重用(在子类中)标签栏,所以我可以在 Interface Builder 中配置它,并且仍然可以使用 UITabBarController。否则它就像一个自定义控件,恰好看起来像一个标签栏。
      猜你喜欢
      • 1970-01-01
      • 2014-12-21
      • 1970-01-01
      • 1970-01-01
      • 2015-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多