ios中对于tabBar选中图片设置的问题
来源:互联网 发布:体检录入升级软件 编辑:程序博客网 时间:2024/04/29 11:56
原文地址:
在ios7中,方法setFinishedSelectedImage:withFinishedUnselectedImage: 已经被弃用,所以如果直接设置tabBarItem的selectImage和image时会出现不能显示图片的问题,效果可能如图:
这时候我们就需要调用imageWithRenderingMode:方法来实现
里面有个UIImageRenderingMode(渲染模式),它是一个枚举
下面信息来自: http://www.cocoachina.com/gamedev/misc/2014/0117/7715.html
着色(Tint Color)是iOS7界面中的一个重大改变,你可以设置一个UIImage在渲染时是否使用当前视图的Tint Color。UIImage新增了一个只读属性:renderingMode,对应的还有一个新增方法:imageWithRenderingMode:,它使用UIImageRenderingMode枚举值来设置图片的renderingMode属性。该枚举中包含下列值:
- UIImageRenderingModeAutomatic // 根据图片的使用环境和所处的绘图上下文自动调整渲染模式。
- UIImageRenderingModeAlwaysOriginal // 始终绘制图片原始状态,不使用Tint Color。
- UIImageRenderingModeAlwaysTemplate // 始终根据Tint Color绘制图片,忽略图片的颜色信息。
知道了这点我们就可以在ios7中实现想要的效果了
- UIImage *img = [UIImage imageNamed:@"myimage"];
- img = [img imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
前后效果图的代码对比
之前的:
之后的:
IOS_7是一个宏,nc1是一个个viewController
这时候就需要设置tabBarItem.imageInsets, 这是一个UIEdgeInsets 。UIEdgeInsets,由函数 UIEdgeInsetsMake ( CGFloat top, CGFloat left, CGFloat bottom, CGFloat right ); 构造出,分别表示其中的内容/标题/图片离各边的距离。它类似于css中的padding, 可以对图像进行位置的偏移设置。
最后加上这个属性,代码如下
- UIEdgeInsets insets = UIEdgeInsetsMake(6, 0, -6, 0);
- //微信
- KVWeChatViewController *wvc = [[KVWeChatViewController alloc] init];
- wvc.titleLabel.text = @"微信";
- UINavigationController *nc1 = [[UINavigationController alloc] initWithRootViewController:wvc];
- nc1.tabBarItem.title = @"微信";
- if (IOS_7) {
- nc1.tabBarItem.imageInsets = insets;
- UIImage *img1 = [UIImage imageNamed:@"tabbar_mainframe_ios7.png"];
- UIImage *imgS1 =[UIImage imageNamed:@"tabbar_mainframeHL_ios7.png"];
- nc1.tabBarItem.selectedImage = [imgS1 imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
- nc1.tabBarItem.image = [img1 imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
- } else {
- [nc1.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"tabbar_mainframeHL_ios7.png"]
- withFinishedUnselectedImage:[UIImage imageNamed:@"tabbar_mainframe_ios7.png"]];
- }
最后就实现了想要的效果:
欢迎批评指正,谢谢~
- ios中对于tabBar选中图片设置的问题
- ios中对于tabBar选中图片设置的问题
- ios中对于tabBar选中图片设置的问题
- ios中对于tabBar选中图片设置的问题
- iOS开发中设置tabbar选中图标的颜色
- tabbar未选中和选中时设置不同的图片
- iOS之TabBar设置普通和选中状态图片
- TabBar 的selecedImage无法显示设置图片问题 和item文字颜色选中设置
- ios 设置tabbar选中颜色
- tabbar 的选取图片设置问题
- StoryBoard中设置TabBar被选中的颜色
- UITabBarController 之 设置选中和未选中的图片 隐藏tabbar
- UITabBarController 之 设置选中和未选中的图片 隐藏tabbar
- tabBar中tabBarItem选中颜色自定义设置
- iOS开中设置UITabBar的背景图片以及各个item的选中图片和未选中
- tabbar 设置选中文字的颜色
- 设置tabBar的背景图片,选中文字颜色
- storyboard创建的:设置tabbar的item选中状态的颜色和图片
- jquery ajax请求中文乱码处理
- firebird 触发器
- awesome android ui
- 神马是Domino?
- ssh linux refused
- ios中对于tabBar选中图片设置的问题
- 【Vijos P1052】 贾老二算算术 高斯消元傻题
- LinkedHashMap简单使用
- java.lang.NullPointerException: target is null for method contains
- 二维码扫描(ZBar,ZXing不知道有没有问题)与arm64的问题.
- 第336天(36W+5)
- 【Jason's_ACM_解题报告】 Colored Cubes
- 8招搞定XenServer虚拟机优化
- 买了SKS的W530