WTGlyphFontSet 0.6

WTGlyphFontSet 0.6

测试已测试
Lang语言 Obj-CObjective C
许可 MIT
Released最后一次发布2015年12月

未声明维护。



  • waterlou
  • 在iOS项目中轻松使用免费的Webfont图标
  • 无需在 Info.plist 中进行设置
  • 在 arbitrary size 中绘制 drawRect 或生成图像
  • 就像使用 [UIImage imageNamed:] 一样简单
  • Cocoapods 支持
  • 支持普通或视网膜显示
  • 减少您的应用程序中的图像,以保持应用程序大小小巧

screenshot screenshot

如何使用(复杂方法)

加载字体
[WTGlyphFontSet loadFont:@"general_foundicons" filename:@"general_foundicons.ttf"];

该函数将字体加载到系统中,第一个参数是后续操作中将要使用的字体名称。

然后您可以使用字体集名称在任意时间加载字体集

[WTGlyphFontSet fontSet:@"general_foundicons"];

您可以加载多个字体。

绘制字体

您可以将符号直接绘制到当前上下文

- (void)drawAtRect:(CGRect)rect name:(NSString*)name color:(UIColor*)color;
- (void)drawAtRect:(CGRect)rect name:(NSString*)name color:(UIColor*)color
         alignment:(NSTextAlignment) alignment verticalAlignment:(NSVerticalTextAlignment)verticalAlignment;
- (void)drawAtRect:(CGRect)rect name:(NSString*)name fontSize:(CGFloat)fontSize color:(UIColor*)color
       strokeColor:(UIColor*)strokeColor strokeWidth:(CGFloat)strokeWidth
         alignment:(NSTextAlignment) alignment verticalAlignment:(NSVerticalTextAlignment)verticalAlignment;
创建图像
- (UIImage*) image:(CGSize)size name:(NSString*)name color:(UIColor*)color;
- (UIImage*) image:(CGSize)size name:(NSString*)name color:(UIColor*)color
         alignment:(NSTextAlignment) alignment verticalAlignment:(NSVerticalTextAlignment) verticalAlignment;
- (UIImage*) image:(CGSize)size name:(NSString*)name fontSize:(CGFloat)fontSize color:(UIColor*)color
       strokeColor:(UIColor*)strokeColor strokeWidth:(CGFloat)strokeWidth
         alignment:(NSTextAlignment) alignment verticalAlignment:(NSVerticalTextAlignment) verticalAlignment;
仅创建具有高度的图像

您也可以仅提供图像的高度,宽度将根据符号宽度计算

- (UIImage*) imageWithHeight:(CGFloat)height name:(NSString*)name color:(UIColor*)color;
- (UIImage*) imageWithHeight:(CGFloat)height name:(NSString*)name
                       color:(UIColor*)color verticalAlignment:(NSVerticalTextAlignment) verticalAlignment;
- (UIImage*) imageWithHeight:(CGFloat)height name:(NSString*)name fontSize:(CGFloat)fontSize color:(UIColor*)color
                 strokeColor:(UIColor*)strokeColor strokeWidth:(CGFloat)strokeWidth
           verticalAlignment:(NSVerticalTextAlignment) verticalAlignment;

示例

// load the font first
[WTGlyphFontSet loadFont:@"general_foundicons" filename:@"general_foundicons.ttf"];
// generate an image
UIImage *image = [[WTGlyphFontSet fontSet: @"general_foundicons] image : CGSizeMake(48, 48) name : @"location" color : [UIColor blackColor]];
// draw directly on screen
[[WTGlyphFontSet fontSet: @"general_foundicons] drawAtRect : CGRectMake(0, 0, 100, 100) name : @"left-arrow" color : [UIColor whiteColor]];

符号名称

此项目包含一些免费的字体。您还可以在演示项目中浏览所有可用的图标。对于每种字体,都有一个与名称相同的 plist 名称,该名称是符号名称 - 字符代码映射的字典。您可以使用符号名称获取符号。您可以在 plist 中检查符号名称列表或直接在演示项目中查看。

如何使用(简单方法)

为了简化获取符号的过程,创建了一套辅助工具。在复杂方法中,您必须获取字体集,然后使用符号名称获取符号。在简化的方法中,符号名称将类似于

"fontawesome##h-sign"

其中 fontawesome 是真型字体的文件名(此辅助工具仅支持 .ttf,不支持 .otf)和 h-sign 是符号名称。辅助类将自动加载字体集。

如果您主要使用一套图标,您可以设置默认的字体集

[WTGlyphFontSet setDefaultFontSetName: @"fontawesome"];

然后调用函数时不需要字体集名称前缀,例如

[WTGlyphFontSet setDefaultFontSetName: @"icomoon"];
UIImage image = [UIImage imageGlyphNamed:@"apple" height:64.0f color:[UIColor darkGrayColor]];

这相当于

UIImage image = [UIImage imageGlyphNamed:@"icomoon##apple" height:64.0f color:[UIColor darkGrayColor]];
创建图片
UIImage image = [UIImage imageGlyphNamed:@"icomoon##apple" height:64.0f color:[UIColor darkGrayColor]];

或者

UIImage image = [UIImage imageGlyphNamed:@"icomoon##apple" size:CGSizeMake(64,64) color:[UIColor darkGrayColor]];

注意:该图片将被像[UIImage imageNamed:]一样缓存。

设置按钮图标
[self.button2 setGlyphNamed:@"fontawesome##h-sign"];

图标颜色将与所有状态下的文字颜色匹配。图标大小将与按钮字体大小相同。

设置文本字段的左侧视图
[self.textField2 setLeftGlyph:@"fontawesome##credit-card" color:[UIColor colorWithWhite:0.5 alpha:1.0]];
获取富文本
NSMutableAttributedString *str = [NSMutableAttributedString attributedStringWithGlyph:@"credit-card" fontSize:self.label1.font.pointSize];

注意:获取富文本可能会将字体注册到UIKit中,这是副作用。

将字体注册到UIKit

该类使用CoreText来绘制字形,因此它不会将字体注册到UIKit中。如果您想像使用其他标准字体一样使用字体,可以调用

UIFont *uiFont = [fontSet uiFontWithSize:12.0f];

这将注册字体到UIKit,您可以获取UIFont对象以进行进一步处理。

自定义字体字形

访问 icomoon.io 创建自定义图标字体

也可以访问 fontcustom.com 从svg构建自定义字体。

检查示例项目中fontcustom文件夹,其中包含一个node.js脚本,可以将.css文件自动转换为.plist。

贡献

如果您发现了任何其他很好的免费网络字体,请为该字体创建.plist文件,并贡献给这个存储库。

许可协议

这些代码可在MIT许可协议下使用。如果您打算使用它,请阅读各个字体的许可协议。