iOS开发技巧

来源:互联网 发布:淘宝网黄金首饰 编辑:程序博客网 时间:2024/06/05 20:56

我们都知道iOS开发中,如果给TabBar的标签设置了自定义的图标之后,TabBar图标默认会被渲染成蓝色。

默认

iOS中UIImage的渲染模式有三种:

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

为了自定义图标样式,一般开发中会选择采取下列步骤:

1. 在Assets.xcassets中,选中图标图片,修改渲染模式为Original

修改渲染模式

2. 分别设置修改tabBarItem.image和tabBarItem.selectedImage的图片

也可以在代码中这样来修改RanderingMode:

tabBarItem.selectedImage = [selImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

如果UI只给了你原图标和一个RGB颜色值而没有SelectedMode模式下渲染好的图标。

那怎么修改TabBar选中图标和字体的颜色呢?

苹果的渲染效果是比较美观的,我们只两行代码就可以实现上述效果了:

在AppDelegate的didFinishLaunchingWithOptions:中,添加两行代码

[[UITabBar appearance] setSelectedImageTintColor:KTabBarColor];[[UITabBar appearance] setTintColor:KTabBarColor];

tada!~:

ss

用上面两行代码,不需要修改图片的RanderingMode。

但是系统给我们报了一个⚠️警告说该方法setSelectedImageTintColor:在iOS8.0已经过期了,用TintColor.

于是我们把第一句代码删掉了,但是效果是这样的:
图标未被渲染

这时,我们想起了图片的渲染模式中的最后一种,只要我们把RanderingMode改成Template Image,就大功告成了!
用一行代码修改TabBar的图标和文字的渲染颜色。

1 0