您的位置:首页 > 产品设计 > UI/UE

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

2015-05-12 10:41 579 查看
关于标签栏(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];

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

//未选中字体颜色  

    [[UITabBarItem appearance] setTitleTextAttributes:@{UITextAttributeTextColor:unselectColor,UITextAttributeFont:[UIFont fontWithName:foneName size:size]} forState:UIControlStateNormal];  

      

//选中字体颜色  

    [[UITabBarItem appearance] setTitleTextAttributes:@{UITextAttributeTextColor:selectColor,UITextAttributeFont:[UIFont fontWithName:foneName size:size]} forState:UIControlStateSelected]; 

感谢参考,希望对您有所帮助,如有纰漏请指正。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐