关于标签栏(UITabBarItem)的系统颜色和图片以及标题颜色的问题

关于标签栏(UITabBarItem),大多数的程序都会使用自定义的标签栏,以前我做的的都是利用代码进行自定义的,最近发现事故板(storyboard(iOS5的新特性))的重要性,就尝试着用事故板来做一些自定义的项目。可是问题来了,自定义的图片和选中图片都是系统的颜色(不是灰色就是蓝色),然人很头疼,还有标签栏的标题也是如此。那么下面我们就来看看如何来解决:

利用事故板创建的标签导航模式有些图片文字属性在事故板中都有,如图:

标题,图片和选中图片都可以设置。不过当我们设置好了之后就会出现下图这样的问题


除了灰色就是蓝色,标题也是如此。(如果选中图片的属性要是设置的话,那么会出现图片消失的情况)

为了保证图片,选中图片,标题  都不会被系统渲染,达到想要的结果最好要在UITabBarController中去实现添加如下代码

UIImage *img = [UIImageimageNamed:@"tab_0"];

    //   系统默认的是渲染成灰色的

    img =  [img imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];//修改渲染

UIImage *img_c = [UIImage imageNamed:@"tab_c0"];

    //    系统默认的是渲染成蓝色的

    img_c =  [img_c imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];//修改渲染


   UITabBarItem *item = [self.tabBar.itemsobjectAtIndex:0];

//    未选中图片

    [item setImage:img];

//    选中图片

    [item setSelectedImage:img_c];

//    标题颜色

   UIColor *titleHighlightedColor = [UIColorcolorWithRed:123.0/255.0green:194.0/255.0blue:22.0/255.0alpha:1.0];

    [itemsetTitleTextAttributes:[NSDictionarydictionaryWithObjectsAndKeys:titleHighlightedColor,NSForegroundColorAttributeName,nil] forState:UIControlStateSelected];



关于字体可以用全局的,这样就不用每个标题进行设置了。

  1. //未选中字体颜色  
  2.     [[UITabBarItem appearance] setTitleTextAttributes:@{UITextAttributeTextColor:unselectColor,UITextAttributeFont:[UIFont fontWithName:foneName size:size]} forState:UIControlStateNormal];  
  3.       
  4. //选中字体颜色  
  5.     [[UITabBarItem appearance] setTitleTextAttributes:@{UITextAttributeTextColor:selectColor,UITextAttributeFont:[UIFont fontWithName:foneName size:size]} forState:UIControlStateSelected]; 



感谢参考,希望对您有所帮助,如有纰漏请指正。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值