ios tabbar插件_iOS tabbar 选择图片默认为蓝色

用storyboard设计TabBar相当的快捷、方便。

但是在属性板栗设置TabBarItem背景图片的时候,Selected Image设置的图片颜色明明是红色,但是实际运行后却变为蓝色。

在StoryBoard中搞了很久也没解决,后来查到是要在代码中更改。

UITabItem的头文件,发现下面的内容:

/* The unselected image is autogenerated from the image argument. The selected image

is autogenerated from the selectedImage if provided and the image argument otherwise.

To prevent system coloring, provide images with UIImageRenderingModeAlwaysOriginal (see UIImage.h)

*/

- (instancetype)initWithTitle:(NSString *)title image:(UIImage *)image tag:(NSInteger)tag;

- (instancetype)initWithTitle:(NSString *)title image:(UIImage *)image selectedImage:(UIImage *)selectedImage NS_AVAILABLE_IOS(7_0);

- (instancetype)initWithTabBarSystemItem:(UITabBarSystemItem)systemItem tag:(NSInteger)tag;

意思是,如果不希望使用系统颜色,需要对图片加上属性UIImageRenderingModeAlwaysOriginal

所以按此方式实验,在对应的TabBarViewController中添加代码如下:

UIImage *homeImageSel = [UIImage imageNamed:@"home_a.png"];

homeImageSel = [homeImageSel imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

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

homeItem.selectedImage = homeImageSel;

备注:其实你可以在Assets.xcassets  你放置图片的蓝色文件夹里面同样可以设置,选中你要的图片,然后右边属性 中  正数第二个 Render As  把Default(系统默认颜色--蓝色)  修改成Original Image (保持图片原色)就可以了

扩展:

着色(Tint Color)是iOS7界面中的一个重大改变,你可以设置一个UIImage在渲染时是否使用当前视图的Tint Color。UIImage新增了一个只读属性:renderingMode,对应的还有一个新增方法:imageWithRenderingMode:,它使用UIImageRenderingMode枚举值来设置图片的renderingMode属性。该枚举中包含下列值:

UIImageRenderingModeAutomatic         // 根据图片的使用环境和所处的绘图上下文自动调整渲染模式。 UIImageRenderingModeAlwaysOriginal // 始终绘制图片原始状态,不使用Tint Color。 UIImageRenderingModeAlwaysTemplate // 始终根据Tint Color绘制图片,忽略图片的颜色信息。

renderingMode属性的默认值是UIImageRenderingModeAutomatic,

即UIImage是否使用Tint Color取决于它显示的位置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值