关于ios的切图颜色处理

关于ios的切图颜色处理

有些朋友应该会经常碰到这样的状况,美工给了你一张切图,但你需要用另一种颜色来标记这张切图的选中状态。那么问题来了,对于忙碌的美工来说你找他要切图,他有可能几天后才给你,大大增加了开发的事件成本。
其实APPLE已经提供了如何处理切图颜色的API,我们直接上代码吧
      UIImage *image = [self.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
      imageView.image = image;
      imageView.tintColor = [UIColor whiteColor];

在iOS7中,我们有了imageWithRenderingMode,这是UIImage的一个方法,参数是有三个选项的枚举值UIImageRenderingMode。

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);
  • UIImageRenderingModeAlwaysOriginal 就和字面的意思一样,这个模式告诉系统按照图片文件原来的样子渲染图片。
  • UIImageRenderingModeAlwaysTemplate 这是最有意思的模式。首先会扫描你的图片,然后从图片中所有不透明的像素创建一个模板。这同时也会忽略图片的所有颜色信息。你可以使用UIView子类的tintColor属性来给图片填充你选择的颜色。
  • UIImageRenderingModeAutomatic 这个模式由系统根据图片的使用环境来决定如何渲染图片。如果你的图片是用在比如UITabBar、UINavigationBar、UIToolbar 和UISegmentedControl这些地方,图片使用AlwaysTemplate渲染模式。图片用在其他的地方则会使用AlwaysOriginal渲染模式。
    是不是很神奇?用代码改变图片的颜色,现在变得简单多了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值