您的位置:首页 > 移动开发

如何自定义设置系统中Tabbar上的文字和图标的颜色

2015-03-25 20:19 666 查看
    很多的人都说Tabbar上的图标和文字设置起来很困难,或者根本就不能设置。更有甚者嫌修改起来太麻烦了,直接自定义tabbar,自己想怎么改就怎么改。也不用去管系统的怎么变。确实,自定义的tabbar这种确实已经很成熟了,但我还是想说是不是系统的真的不能修改了,如果不能修改,那iOS本身的底层是不是就是缺乏这种,还是人家是禁止,提倡自定义的。没有答案,但是,确实是有修改系统中tabbar上的文字和图标的颜色的,包括未选中的颜色。

    单独修改tabbar上的item的图片,系统会自动识别出你给的图片,过滤掉像素值之后,填充上系统自己定义的颜色,比如默认选中的蓝色和未选中的灰色之类的,这样的话,就无法达到我们所要做的效果。

[self.tabBar setSelectedImageTintColor:[UIColor blackColor]];<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span>
这样的确实可以修改颜色,但是是实际上还是系统给出的颜色,无法直接显出我们图片上的颜色,这样设置起来就很麻烦,而且,这只是针对选中的变为黑色,未选中的没有任何改变。

//tabbarItem 图片显示原来颜色
UITabBarItem *item = [tabBar.items objectAtIndex:0];
UIImage *img1 = [UIImage imageNamed:@ "_fj_position.png" ];
UIImage *img2 = [UIImage imageNamed:@ "_fj_phone.png" ];
img1 = [img1 imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
img2 = [img2 imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
item =[item initWithTitle:@"gg" image:img1 selectedImage:img2];苹果文档说明,不是没有,你只要把当前的图片的模式修改成UIImageRenderingModeAlwaysOrigina
的模式之后,添加上去之后,tabbar上当前的item自动会显示所有你自己的图片和颜色,不会过滤掉之后添加上系统自己给的。写在你要设置item的位置上,这样的话,就能得到你想要的原生图片了。
下面是修改tabbar上的文字的颜色,有些和上面的一样,系统会首先帮你设定好文字的格式什么的,但是其实我们想自己设定的时候[item setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor blackColor], UITextAttributeTextColor,nil] forState:UIControlStateNormal];调用这个方法的是item下单独调用的,设置文字的格式的,可以直接设定。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  apple 开发者 苹果 ios