MOOMaskedIconView 是一个 UIView 子类,使用黑白遮罩在任意大小或分辨率下绘制不同风格的图标。它类似于 Photoshop 层样式,使用与 UITabBar 相同的技术从单个图标遮罩生成各种效果。
MOOMaskedIconView 可以显示常见的图像格式和 PDF,这是 iOS 和 OS X 的原生矢量文件格式。PDF 最佳——它们易于维护且具有分辨率无关性。
MOOMaskedIconView *iconView = [MOOMaskedIconView iconWithResourceNamed:@"icon.png"]
iconView.color = [UIColor greenColor];
[self.view addSubview:iconView];
MOOStyleTrait *grayGradientTrait = [MOOStyleTrait trait];
grayGradientTrait.gradientColors = [NSArray arrayWithObjects:[UIColor colorWithWhite:0.7f alpha:1.0f],
[UIColor colorWithWhite:0.5f alpha:1.0f], nil];
MOOMaskedIconView *iconView = [MOOMaskedIconView iconWithPDFNamed:@"icon.pdf" size:CGSizeMake(32.0f, 26.0f)];
[iconView mixInTrait:grayGradientTrait];
[self.view addSubview:iconView];
UIImage *overlay = [UIImage imageNamed:@"overlay.png"];
MOOMaskedIconView *iconView = [MOOMaskedIconView iconWithImageNamed:@"icon.png"];
iconView.color = [UIColor redColor];
iconView.overlay = overlay;
iconView.shadowColor = [UIColor darkGrayColor];
iconView.shadowOffset = CGSizeMake(3.0f, 3.0f);
[self.view addSubview:iconView];
MOOMaskedIconView *iconView = [MOOMaskedIconView iconWithResourceNamed:@"icon.pdf"];
iconView.color = [UIColor magentaColor];
iconView.highlightedColor = [UIColor orangeColor];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:[iconView renderImage] forState:UIControlStateNormal]
[button setImage:[iconView renderHighlightedImage] forState:UIControlStateHighlighted];
[self.view addSubview:button];
有关更多示例,请参阅 演示项目。
有关可样式化属性的完整列表,请参阅 MOOMaskedIconViewStyles。
有关可重复使用样式、缓存和其他高级主题的信息,请参阅 高级使用。
在您的项目文件夹中,键入
git submodule add git://github.com/peyton/MOOMaskedIconView.git
子模块允许您的仓库包含对外部项目的克隆。如果您不需要子模块,请使用
git clone git://github.com/peyton/MOOMaskedIconView.git
将 MOOMaskedIconView/
拖动到您的 Xcode 项目的文件浏览器中。
注意:将会弹出一个选项对话框。如果您将 MOOMaskedIconView 作为子模块使用,您应该取消选中“将项复制到目标组的文件夹中(如果需要)。"
在导航器中选择您的应用程序的目标后,单击“构建阶段”选项卡。在“链接到二进制库”下,单击加号按钮并添加 Accelerate.framework
。
#import "MOOMaskedIconView.h"
进入 MOOMaskedIconView 目录并运行
git pull
图像蒙版是一种剪裁绘制的黑白图像。Quartz 剪裁遵循三个简单规则
蒙版图像可能不会使用 alpha 通道,因此具有透明度的图标必须在白色背景上设置。有关石英图像蒙版的更多信息,请参阅石英 2D 编程指南。
MOOMaskedIconView 可以轻松地将 PDFs 用作图标,消除了 "*@2x.*" 文件。许多 OS X 上的 Apple 应用程序使用 PDF 图标以保持分辨率无关。
除了网络之外,iPhone 上的最大延迟来源是磁盘。对于小型简单图标,PDF 格式比 PNG 格式多几个 KB 的开销。由于 iPhone 以块形式加载数据,在实际中加载时间的差异并不大。对于较大图标,矢量 PDF 可以 节省 空间。
某些编辑器需要稍作调整才能导出适合 iOS 图标的 PDFs。如何操作的说明在此。
拉取请求、补丁和其他建议总是受欢迎,并尽可能快速地解决。这里有快速指南说明了这个过程。