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

本文介绍如何自定义iOS应用中的TabBar图标及文字颜色,包括选中与未选中状态,通过修改图片渲染模式和使用特定方法实现原生图片显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    很多的人都说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下单独调用的,设置文字的格式的,可以直接设定。




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值