iOS设置tabbar的显示之 imageWithRenderingMode:
来源:互联网 发布:js数组 key push 编辑:程序博客网 时间:2024/04/30 06:07
以下代码是设置选中和未选中的图片设置的方式:
img:未选中图片
selectedImg:选中图片
vc.tabBarItem.image = [UIImage imageNamed:img]; UIImage *imgV4 = [UIImage imageNamed:selectedImg]; vc.tabBarItem.selectedImage = [imgV4 imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; [vc.tabBarItem setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor colorWithWhite:0.286 alpha:1.000], NSForegroundColorAttributeName, nil] forState:UIControlStateNormal]; [vc.tabBarItem setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor orangeColor], NSForegroundColorAttributeName, nil] forState:UIControlStateSelected];
上面的代码中有:
vc.tabBarItem.selectedImage = [imgV4 imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]
苹果的官方解释为:Creates and returns a new image object with the specified rendering mode(创建和放回一个指定渲染模式的图片对象).
渲染模式如下所示:
typedef enum : NSInteger { UIImageRenderingModeAutomatic, UIImageRenderingModeAlwaysOriginal, UIImageRenderingModeAlwaysTemplate,} UIImageRenderingMode;
UIImageRenderingModeAutomaticUse the default rendering mode for the context where the image is used.-根据图片的使用环境和所处的绘图上下文自动调整渲染模Available in iOS 7.0 and later.UIImageRenderingModeAlwaysOriginalAlways draw the original image, without treating it as a template.-始终根据Tint Color绘制图片,忽略图片的颜色信Available in iOS 7.0 and later.UIImageRenderingModeAlwaysTemplateAlways draw the image as a template image, ignoring its color information.-总是画图像作为模板图像,忽视它的颜色信息Available in iOS 7.0 and later.
那么他们的具体区别是什么呢?我们看看以下实验,然后自己可以体会体会。
以下是原始图片:
当我们将模式设置为:UIImageRenderingModeAlwaysOriginal
看到的是如下的样子:
当我们将模式设置为:UIImageRenderingModeAutomatic
看到的是如下的样子:
当我们将模式设置为:UIImageRenderingModeAlwaysTemplate
看到的是如下的样子:
以上就是设置tabbar时图片的渲染模式不同而产生的效果。
对UIImageView中的图片进行渲染的时候效果如下:
UIImageView *igv = [[UIImageView alloc]init]; igv.image = [UIImage imageNamed:@"synchronize_banner_add_friends"]; [igv.image imageWithRenderingMode:UIImageRenderingModeAutomatic]; [self.view addSubview:igv]; UIImageView *igv1 = [[UIImageView alloc]init]; igv1.image = [UIImage imageNamed:@"synchronize_banner_add_friends"]; [igv1.image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; [self.view addSubview:igv1]; UIImageView *igv2 = [[UIImageView alloc]init]; igv2.image = [UIImage imageNamed:@"synchronize_banner_add_friends"]; [igv2.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; [self.view addSubview:igv2]; CGFloat w = 300; CGFloat h = 80; CGFloat offset = 90; [igv mas_makeConstraints:^(MASConstraintMaker *make) { make.centerX.mas_equalTo(self.view); make.centerY.mas_equalTo(-200); make.width.mas_equalTo(w); make.height.mas_equalTo(h); }]; [igv1 mas_makeConstraints:^(MASConstraintMaker *make) { make.centerX.mas_equalTo(self.view); make.centerY.mas_equalTo(igv.centerY).with.offset(offset); make.width.mas_equalTo(w); make.height.mas_equalTo(h); }]; [igv2 mas_makeConstraints:^(MASConstraintMaker *make) { make.centerX.mas_equalTo(self.view); make.centerY.mas_equalTo(igv1.centerY).with.offset(offset); make.width.mas_equalTo(w); make.height.mas_equalTo(h); }];
发现这里三种模式没有任何的变化。
分别给它们添加上Tint Color之后同样没有发生什么变化。
igv.tintColor = [UIColor redColor];igv1.tintColor = [UIColor redColor];igv2.tintColor = [UIColor redColor];
—先写到这里
0 0
- iOS设置tabbar的显示之 imageWithRenderingMode:
- iOS之隐藏/显示tabbar
- iOS开发 之 navigationbar 与 tabbar 的显示与隐藏
- IOS tabbar的显示与隐藏
- ios隐藏和显示TabBar的方法
- iOS开发-设置tabBar的背景图片
- iOS开发tabbar的设置及隐藏
- 关于iOS Tabbar的一些设置
- 关于iOS Tabbar的一些设置
- iOS开发-tabBar的常见设置
- iOS 设置tabBar上的提醒数字
- 关于iOS Tabbar的一些设置
- 关于iOS Tabbar的一些设置
- ios-设置navigationBar和tabBar的样式
- imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal让item上的图片原样显示
- iOS tabbar设置
- 小程序开发之坑一 -- ios不显示tabBar的文字
- iOS之TabBar设置普通和选中状态图片
- HDU 2203 亲和串
- 代码测试:java反射中getXXX和getDeclaredXXX的区别
- 计算流图中的前必经节点
- fuel 5.1在vmware esxi上的部署
- 基于密度的聚类算法(DBSCAN)的java实现
- iOS设置tabbar的显示之 imageWithRenderingMode:
- Find the Spy
- (8)Python爬虫——爬取豆瓣影评数据
- 蓝桥杯 历届试题 奇怪的比赛
- 深入理解Intent和IntentFilter
- SessionId
- 知乎日报(Know almost daily chrome version)
- 关于struts2接受参数
- 一个链表L 一个链表P 包含升序排列的整数 操作PrintLots(L,P)将打印L中那些由P所指定的位置上的元素