TabBarItem的图片默认颜色 让我甚是头痛,美工MM说灰色的好丑 T_Tios
1.iOS7如下app
查阅了相关文档,这样一个方法字体
/* These methods are now deprecated. Please use -initWithTitle:image:selectedImage:. */ - (void)setFinishedSelectedImage:(UIImage *)selectedImage withFinishedUnselectedImage:(UIImage *)unselectedImage NS_DEPRECATED_IOS(5_0,7_0,"Use initWithTitle:image:selectedImage: or the image and selectedImage properties along with UIImageRenderingModeAlwaysOriginal");
不过你也看到了,这iOS7开始就弃用了,但至少还能用,若是不介意那烦人的警告的话;ui
2.iOS7以上this
那警告实在闹心,根据警告内容,我又查了资料,结果比较有趣spa
//UITabBar设置未选中图片 [yourTabBarItem setImage:[[UIImage imageNamed:@"more.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; //UITabBar设置选中图片 [yourTabBarItem setSelectedImage:[[UIImage imageNamed:@"more.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
有一个共同点就是图片多调用了code
// Create a version of this image with the specified rendering mode. By default, images have a rendering mode of UIImageRenderingModeAutomatic. - (UIImage *)imageWithRenderingMode:(UIImageRenderingMode)renderingMode NS_AVAILABLE_IOS(7_0);
也就是设置了UIImageRenderingMode,下面是枚举orm
它使用UIImageRenderingMode枚举值来设置图片的renderingMode属性。该枚举中包含下列值: UIImageRenderingModeAutomatic // 根据图片的使用环境和所处的绘图上下文自动调整渲染模式。 UIImageRenderingModeAlwaysOriginal // 始终绘制图片原始状态,不使用Tint Color。 UIImageRenderingModeAlwaysTemplate // 始终根据Tint Color绘制图片,忽略图片的颜色信息。
3.以上只就解决了图片颜色问题还有文字 颜色仍是默认的颜色图片
//设置未选中字体颜色 [[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:UIColorFromRGB(0x003500), NSForegroundColorAttributeName, nil] forState:UIControlStateNormal]; //设置选中字体颜色 [[UITabBarItem appearance] setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys: UIColorFromRGB(0xff3500), NSForegroundColorAttributeName, nil] forState:UIControlStateSelected];
附上一个颜色宏ci
/** Create a UIColor from a hex value. For example, `UIColorFromRGB(0xFF0000)` creates a `UIColor` object representing the color red. */ #define UIColorFromRGB(rgbValue) \ [UIColor \ colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \ green:((float)((rgbValue & 0x00FF00) >> 8))/255.0 \ blue:((float)(rgbValue & 0x0000FF))/255.0 \ alpha:1.0]
参考:http://stackoverflow.com/questions/19563193/uitabbaritem-setfinishedselectedimage-deprecated-in-ios7