MOOMaskedIconView 0.1.0

MOOMaskedIconView 0.1.0

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布最新发布2014年12月

未申领维护。



  • 作者:
  • Peyton Randolph

简介


MOOMaskedIconView 是一个 UIView 子类,使用黑白遮罩在任意大小或分辨率下绘制不同风格的图标。它类似于 Photoshop 层样式,使用与 UITabBar 相同的技术从单个图标遮罩生成各种效果。

Tab bar icons

MOOMaskedIconView 可以显示常见的图像格式和 PDF,这是 iOS 和 OS X 的原生矢量文件格式。PDF 最佳——它们易于维护且具有分辨率无关性。

示例


从一个 PNG 文件创建一个绿色图标

MOOMaskedIconView *iconView = [MOOMaskedIconView iconWithResourceNamed:@"icon.png"]
iconView.color = [UIColor greenColor];
[self.view addSubview:iconView];

调整 PDF 图标的尺寸并添加可重复使用的渐变特征

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];

将 PDF 图标渲染到 UIButton 中

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

Accelerate.framework process

在导航器中选择您的应用程序的目标后,单击“构建阶段”选项卡。在“链接到二进制库”下,单击加号按钮并添加 Accelerate.framework

最后:导入标题

#import "MOOMaskedIconView.h"

稍后:更新到最新版本

进入 MOOMaskedIconView 目录并运行

git pull

创建图像蒙版


Image mask process

图像蒙版是一种剪裁绘制的黑白图像。Quartz 剪裁遵循三个简单规则

  • 黑色像素呈现不透明。
  • 白色像素呈现透明。
  • 灰色像素使用 alpha 值为 1 - 源像素的灰度值

蒙版图像可能不会使用 alpha 通道,因此具有透明度的图标必须在白色背景上设置。有关石英图像蒙版的更多信息,请参阅石英 2D 编程指南

使用 PDFs 创建可缩放图标


MOOMaskedIconView 可以轻松地将 PDFs 用作图标,消除了 "*@2x.*" 文件。许多 OS X 上的 Apple 应用程序使用 PDF 图标以保持分辨率无关。

除了网络之外,iPhone 上的最大延迟来源是磁盘。对于小型简单图标,PDF 格式比 PNG 格式多几个 KB 的开销。由于 iPhone 以块形式加载数据,在实际中加载时间的差异并不大。对于较大图标,矢量 PDF 可以 节省 空间。

某些编辑器需要稍作调整才能导出适合 iOS 图标的 PDFs。如何操作的说明在此

贡献


拉取请求、补丁和其他建议总是受欢迎,并尽可能快速地解决。这里有快速指南说明了这个过程。