美文网首页iOSiOS开发高级
iOS Image根据TintColor进行绘制图片(UIIma

iOS Image根据TintColor进行绘制图片(UIIma

作者: 887d1fc86fe6 | 来源:发表于2017-05-04 10:22 被阅读664次

UIImageRenderingModeAlwaysTemplate是UIImage渲染模式UIImageRenderingMode枚举类型中的其中一个,除去这个外还有另外两个

UIImageRenderingMode {

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

UIImageRenderingModeAlwaysOriginal // 始终绘制图片原始状态,设置Tint Color属性无效。

UIImageRenderingModeAlwaysTemplate // 始终根据Tint Color绘制图片(颜色)显示,忽略图片的颜色信息(也就是图片原本的     东西是不显示的)。

}

使用:

例子1:

美工切出来一个返回按钮  颜色是黄色 但有一个页面需要这个返回按钮是红色  那就没必要美工再切一张红色的按钮,而是利用UIImageRenderingModeAlwaysTemplate这个属性把黄色按钮改成红色

UIImage*image = [UIImageimageNamed:@"111.jpg"];

image = [image imageWithRenderingMode: UIImageRenderingModeAlwaysTemplate];

UIImageView*imageView = [[UIImageViewalloc]initWithFrame:CGRectMake(100, 100, 100, 100)];

imageView.image = image;

imageView.tintColor = [UIColorpurpleColor];

[self.view addSubview:imageView];

例子2:

UIButton的点击状态  因为UIButton设置背景色  点击UIButton是没有点击色的  但是UIButton的背景图片有点击色 那就可以利用UIImageRenderingModeAlwaysTemplate这个属性改变任意一张图片的颜色为我们需要的那个颜色

例  代码

UIImage*image = [UIImageimageNamed:@"111.jpg"];

image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];

UIButton*btn = [[UIButtonalloc]initWithFrame:CGRectMake(0, 0, 100, 100)];

btn.tintColor = [UIColorbrownColor];

[btn setBackgroundImage:image forState:UIControlStateNormal];

[self.view addSubview:btn];

相关文章

网友评论

    本文标题:iOS Image根据TintColor进行绘制图片(UIIma

    本文链接:https://www.haomeiwen.com/subject/ieertxtx.html