设置tabBarItem的图片渲染
来源:互联网 发布:管家婆软件怎么安装 编辑:程序博客网 时间:2024/06/10 04:30
在自定义tabbar的时候回遇到这样的问题:
- 将美工给的图片设置为tabBarItem的selectImage,美工给的图片的是这样子的:,但是设置好以后现实的图片是这样的:。
问题原因:
- 系统默认对tabBarItem的图片进行了渲染。
解决办法:
设置图片的渲染模式:
UIImage.renderingMode
是使用
imageWithRenderingMode:
方法对设置图片的renderingMode
属性进行设置。代码如下:
```objective-c[seletcImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];```问题解决系统不会再对图片进行渲染,而是直接使用原图。
思考:
能不能自定义设置tabBarItem的selectImage的颜色?
我们看一下UIImage的
renderingMode
属性UIImageRenderingModeAutomatic // 根据图片的使用环境和所处的绘图上下文自动调整渲染模式。
UIImageRenderingModeAlwaysOriginal // 始终绘制图片原始状态,不使用Tint Color。
- UIImageRenderingModeAlwaysTemplate // 始终根据Tint Color绘制图片,忽略图片的颜色信息。
系统默认属性1,显然能帮助我们设置颜色的属性值应该是3。那么问题又来了?什么是tint color?
tint Color:
tintColor是描述线条轮廓的一种颜色,该颜色默认具有传递性,默认状态下最底部的视图的tintcolor会一直往上面的视图传递。
如果子视图改变了tintcolor那么将会和父视图的tintColor不一样;传递链从此处断开。
navagation的item的 tintColor和controller自带的View不是在同一层次上;改变controller的view的tintColor对navagation的tintColor没有颜色。
由于,tintColor的特性,我们可以对镂空的图片(如tabbar的image和 BarButtonItem的image)进行设置tintColor就可以设置改变镂空图片的颜色。
解决思路来了。。。只要找到selectImage的父视图然后设置父视图的tint color。再设置selectImage图片的rendingMode为UIImageRenderingModeAlwaysTemplate。那么父视图的tint color 就会被渲染到图片上了。
代码:
self.tabBar.tintColor = [UIColor purpleColor];//设置成紫色 vc.tabBarItem.selectedImage = [seletcImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];//这里的seletcimjage变量是传入的图片
效果
,这样我们就能通过设置父视图的tint color来渲染我们想要的颜色了。
- 设置tabBarItem的图片渲染
- 设置tabBarItem图片渲染
- uitabbarcontroller上的tabbaritem的图片设置
- IOS7 tabBarItem 自定义图片的设置
- IOS7 tabBarItem 自定义图片的设置
- TabBarItem的图片与颜色设置
- tabbaritem选中时的图片设置
- tabBarItem的图片不要渲染成系统默认的蓝色
- tabBarItem标题与图片去除渲染
- 设置morenavigationcontroller的tabbaritem
- 设置tabbaritem的title的颜色及按钮图片
- tabBarItem 选中和未选中的图片设置
- 子控制器tabBarItem底部选中图片显示为自己配置的 不让系统渲染
- tabbaritem的字体颜色设置
- iOS8 TabBarItem设置自定义图片问题
- 设置tabBarItem字体颜色和图片颜色
- TabBarItem设置图片超出tabbar范围
- iOS小问题---设置TabBarItem的字体大小、颜色,各种状态下的图片
- android:screenOrientation
- nginx反向代理TCP,取RTMP流
- 《科学》封面重磅论文:人工智能终于能像人类一样学习
- srcollview 嵌套ListView ListView 再嵌套gridview 焦点滑动问题
- javascript——textarea自动伸缩问题
- 设置tabBarItem的图片渲染
- 输出任意两个数之间的所有素数
- SQL中Group By的使用
- java进制转换
- 如何安装Python环境以及为Visual Studio 2012安装Python插件
- Yii中使用Gii生成代码时碰到“Setting unknown property: yii\web\Application::gii”
- TF-IDF公式
- 网络协议系列之六:TCP流量控制
- 安卓权限大全