RCRColorizedIconImage 1.1.0

RCRColorizedIconImage 1.1.0

测试测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2015年2月

Rich Robinson维护。



  • 作者
  • Rich Robinson

一个 iOS UIImage 分类,UIImageView 子类和 UIButton 子类,可将颜色应用于灰度图像,而保留任何已有的透明度。

Sample app screenshot

它所依赖的内容

RCRColorizedIconImage 已验证与 Xcode 6.1 和 iOS 8.1 兼容。

所有代码均使用 ARC。

如何使用它

首先,将 RCRColorizedIconImage 文件夹和代码添加到您的项目。然后,您可以根据以下部分讨论的内容使用 UIImage 分类,UIImageView 子类和 UIButton 子类。

UIImage 分类

UIImage 上的 RCRColorizedIconImage 分类提供了一组用于将颜色应用于图像的方法。

为了使用该分类,您需要以下导入

#import "UIImage+RCRColorizedIconImage.h"

然后将颜色应用于图像有几种选项。例如,要创建名为“Sample”的图像的红色版本,您将执行以下操作:

UIImage *redImage = [UIImage colorizedImageNamed:@"Sample" color:[UIColor redColor]];

要获取现有 UIImage 的绿色版本,可以使用以下代码

// ‘existingImage’ is a UIImage that we’re already using
UIImage *greenImage = [existingImage colorizedVersionWithColor:[UIColor greenColor]];

请查阅示例项目和 API 文档以获取更多信息。

UIImageView 子类

UIImageView 子类主要用于在 Interface Builder 中方便地将颜色应用于图像。

只需将常规图像视图拖入视图中。然后,使用 Identity Inspector 将其类设置为 RCRColorizedIconImageView。您现在可以使用属性检查器中“Colorized Icon Image Button”部分的颜色选择器来将颜色应用于图像。

请注意,如果您有一个引用图像视图的出口,您可以在任何时间编程更改 color 属性,相应的图像将被更新。

示例项目中包含使用 Interface Builder 使用图像视图的示例。

UIButton 子类

在 Interface Builder 中的应用

使用 RCRColorizedIconImageButton 的最简单方法是使用 Interface Builder。

首先,将一个普通按钮拖动到您的视图中。然后,使用身份检查器,将按钮的类设置为RCRColorizedIconImageButton。接下来,使用属性检查器,将按钮的类型更改为‘自定义’。

我们现在可以配置按钮的外观 - 但在我们这样做之前,有一些重要的事情需要了解。

首先,RCRColorizedIconImageButton与按钮的‘正常’控制状态一起使用。在Interface Builder中,这由状态配置属性的‘默认’值表示,因此在进行下一步之前,请确保已选择此值。为了使按钮在被点击和禁用时看起来像您通常想要的那样,建议您将‘高亮调整图像’和‘禁用调整图像’属性保留勾选状态(默认情况下是勾选的)。

其次,RCRColorizedIconImageButton旨在与按钮的主要图像(而不是背景图像)一起使用 - 因此,在指定文件名时请确保使用正确的属性。

考虑到这些要点,现在您可以使用属性检查器设置按钮的图像。

现在只剩下指定应用于图像的颜色。这是通过属性检查器中‘彩色图标图像按钮’部分的调色板完成的。使用标准界面选择一种颜色,您就完成了!

在示例项目中可以找到使用Interface Builder的按钮示例。

程序化使用

如果您希望在Interface Builder之外程序化创建按钮,那么这个过程基本上与处理普通的UIButton相同。

首先,您需要导入

#import "RCRColorizedIconImageButton.h"

然后,创建一个新的RCRColorizedIconImageButton实例,并设置其图像。请注意,RCRColorizedIconImageButton旨在仅用于按钮的主要图像(而不是背景图像),而且只为UIControlStateNormal提供支持。因此,建议将UIButton属性adjustsImageWhenDisabledadjustsImageWhenHighlighted保留为它们的默认值YES

最后,需要的唯一其他步骤是设置按钮的color属性。

以下代码展示了在一个视图控制器中从内部使用红色彩色按钮的一个示例。

RCRColorizedIconImageButton *button = [[RCRColorizedIconImageButton alloc] initWithFrame:CGRectMake(50.0f, 50.0f, 80.0f, 38.f)];
[button setImage:[UIImage imageNamed:@"Sample"] forState:UIControlStateNormal];
button.color = [UIColor redColor]; // Colorize the button
[self.view addSubview:button];

(此代码假设项目中有合适的名为'Sample'的图像。)

与图像视图一样,按钮的color属性可以在任何时间更改,相应地更新图像。

示例项目

RCRColorizedIconImageSample文件夹中可以找到一个展示图像视图和按钮示例的项目。

API文档

最新的API文档可以在CocoaDocs中找到:http://cocoadocs.org/docsets/RCRColorizedIconImage/

许可证

MIT许可证(请参阅存储库根目录中的LICENSE文件)。