关于修改tabbar的颜色的问题

首先,项目是在故事板中搭建的,所以遇到这个问题的时候,首先是想到在故事板中找到相关的属性,确实是有一个Selected Image,但是设置了这个图片以后,运行的效果是,点击选择后,本身的image就没有了;

(不知道这个属性是做什么用的)

然后就想着还是用代码添加吧,于是就有了下面的一大段代码

TableViewController *tv = [[TableViewController alloc]init];

TableViewController2 *tv2 = [[TableViewController2 alloc]init];

TableViewController3 *tv3 = [[TableViewController3 alloc]init];

TableViewController4 *tv4 = [[TableViewController4 alloc]init];

[self setViewControllers:@[tv,tv2,tv3,tv4]];

// 拿到 TabBar 在拿到想应的item

UITabBar *tabBar = self.tabBar;

UITabBarItem *item0 = [tabBar.items objectAtIndex:0];

UITabBarItem *item1 = [tabBar.items objectAtIndex:1];

UITabBarItem *item2 = [tabBar.items objectAtIndex:2];

UITabBarItem *item3 = [tabBar.items objectAtIndex:3];

// 对item设置相应地图片

item0.selectedImage = [[UIImage imageNamed:@"食课B"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];;

item0.image = [[UIImage imageNamed:@"食课A"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

item1.selectedImage = [[UIImage imageNamed:@"食谱B"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];;

item1.image = [[UIImage imageNamed:@"食谱A"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

item2.selectedImage = [[UIImage imageNamed:@"食课B"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];;

item2.image = [[UIImage imageNamed:@"食课A"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

item3.selectedImage = [[UIImage imageNamed:@"食谱B"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];;

item3.image = [[UIImage imageNamed:@"食谱A"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

效果确实是出来了,但是很明显,就为了一个点击后修改颜色的效果,这段代码实在太多

然后接着网上找,发现了

self.tabBar.tintColor = [UIColor colorWithRed:255.0/255.0 green:124.0/255.0 blue:56.0/255.0 alpha:1];

众里寻她千百度,,,

这些代码都不是在Appdelegate中写的,是在一个继承自UITabBarController的控制器(也是项目的根控制器,不然能self.吗?)中写的。所以,如果你只是想单纯的修改tabbar选择后的颜色的话,那么上面的一大段代码可以省略(不过用代码创建tabbar的时候可以借鉴),

时间: 2024-10-23 20:46:09

关于修改tabbar的颜色的问题的相关文章

IOS开发—无需自定义,修改tabbar背景颜色

最近修改的项目都是基于IOS 5.0或以上的版本的,在IOS 6一下的版本中,系统默认的tabbar是黑色的,但是此项目需要改成兼容IOS 7和IOS 8的,大家都知道IOS 7开始,IOS的 UI 进入了扁平的时代,改动也是相当大的,tabbar默认的改成了白色半透明的效果,需要将tabbar修改成黑色的效果,但是又不想将源代码改动的过大,今天也是不费辛苦,找到了解决的方案. 首先要创建tabBarController的对象,这里就不在多说. 下面是主要的代码: UIView *backVie

【IOS】修改TabBar属性

1 if (IOS7) { 2 3 4 //ios7下,tabbar选中的文字颜色 5 6 _tabBarController.tabBar.tintColor = COLOR(245, 254, 0, 1); 7 8 } 9 10 else { 11 12 //ios6下,tabbar选中的文字颜色 13 14 [[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys

在使用shape的同时,用代码修改shape的颜色属性

Android里面经常会使用shape来定制一些View的背景 可以修改View的背景颜色,形状等属性 一般情况下,shape都是在xml文件里面写死了,今天遇到一个需求,View的形状是圆角的,但是颜色是在代码里面设置的 最开始的思路是先在代码里给View设置颜色,再在shape里面设置solid属性为透明色 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="htt

Android Studio -修改LogCat的颜色

Android Studio -修改LogCat的颜色 author:Kang,Leo weibo:http://weibo.com/kangyi 效果图 设置 Preference->Editor->Colors &n Fonts->Android Logcat 在后面将Use Inberited attributes 去掉勾选 再将 Foreground 前的复选框选上,就可以双击后面的框框去选择颜色了 Apply–>OK  推荐色值 Log级别 色值 VERBOSE

修改eclipse背景颜色

修改eclipse的背景色 专注java已6年,欢迎加入java核心技术QQ群:135138817,每周五晚有群主进行技术讲座. eclipse操作界面默认颜色为白色.对于我们长期使用电脑编程的人来说,白色很刺激我们的眼睛,所以我经常会改变workspace的背景色,使眼睛舒服一些. 设置方法如下: 1.打开window->Preference,弹出Preference面板 2.展开General标签,选中Editors选项,展开. 3.选中 Test Editors,右边出现Test Edit

ubuntu修改终端背景颜色

1.总流程:终端编辑->配置文件->新建->颜色 2.过程图: 终端编辑选项->配置文件 新建 修改颜色 OK! ubuntu修改终端背景颜色

修改vim字体颜色

通过putty或者securecrt连到linux服务器,使用vi编辑*.php 或*.c文件时, 蓝色的注释很淡,看不清,看起来很费眼 效果如下 我本身有习惯于默认配色,不想修改配色方案,只想把看不清蓝色的注释换掉,修改成目录的蓝色 翻了翻相关资料,大部分都是修改配色方案,最后发现可以通过hi命令来修改注释的颜色. hi指令使用方法 设置关键字为蓝色非粗体 :hi Identifier ctermfg =blue cterm =none (bold 就设置成粗体) 那我们的问题就可以通过添加一

Revit 二次开发 修改对象的颜色

//修改对象颜色 [TransactionAttribute(Autodesk.Revit.Attributes.TransactionMode.Manual)] public class ChangeColor : IExternalCommand { public Result Execute(ExternalCommandData commandData, ref string messages, ElementSet elements) { ChangeElementColor(comm

xcode6 里面通过subclass UITabbar 来修改tabbar的高度

项目需要,需要修改tabbar的高度. 网上找了很多,基本上两个思路 1. 遍历tabbar的所有子view,然后修改frame. 2. 完全自己定制tabbar 第一个,感觉不是很稳定,需要每次tabbar修改frame后,再次调用修改. 第二种,感觉修改太多了.我只是要修改以下高度啊. 后来发现可以在xcode上设置UITabbarController的UITabbar,那是不是可以自己subclass以下UITabbar,然后在sizeThat 重载下,返回自己的想要的高度. 试了下,果然