您的位置:首页 > 产品设计 > UI/UE

19.UIImage之渲染模式(renderingMode)

2016-02-22 11:59 411 查看
着色(Tint Color)是iOS7界面中的一个重大改变,你可以设置一个UIImage在渲染时是否使用当前视图的Tint Color。iOS7中UIImage新增了一个只读属性:renderingMode,对应的还有一个新增方法:imageWithRenderingMode:。

// 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);
@property(nonatomic, readonly) UIImageRenderingMode renderingMode NS_AVAILABLE_IOS(7_0);
`


它使用UIImageRenderingMode枚举值来设置图片的renderingMode属性。该枚举中包含下列值:

typedef NS_ENUM(NSInteger, UIImageRenderingMode) {
UIImageRenderingModeAutomatic,          // Use the default rendering mode for the context where the image is used
UIImageRenderingModeAlwaysOriginal,     // Always draw the original image, without treating it as a template
UIImageRenderingModeAlwaysTemplate,     // Always draw the image as a template image, ignoring its color information
} NS_ENUM_AVAILABLE_IOS(7_0);
`


UIImageRenderingModeAutomatic // 根据图片的使用环境和所处的绘图上下文自动调整渲染模式。

UIImageRenderingModeAlwaysOriginal // 始终绘制图片原始状态,不使用Tint Color。

UIImageRenderingModeAlwaysTemplate // 始终根据Tint Color绘制图片,忽略图片的颜色信息。

renderingMode属性的默认值是UIImageRenderingModeAutomatic,即UIImage是否使用Tint Color取决于它显示的位置。

什么情况下使用?

某些时候,在为某些控件添加图片的时候,会不显示图片,只显示 控件的 tint color, 故需要将其着色改为原始状态, 才可以显示出来图片。

UIImage *pic = [UIImage imageNamed:@"qq.png"] ;
pic = [pic imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: