[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中,这是副作用。
该类使用CoreText来绘制字形,因此它不会将字体注册到UIKit中。如果您想像使用其他标准字体一样使用字体,可以调用
UIFont *uiFont = [fontSet uiFontWithSize:12.0f];
这将注册字体到UIKit,您可以获取UIFont对象以进行进一步处理。
访问 icomoon.io 创建自定义图标字体
也可以访问 fontcustom.com 从svg构建自定义字体。
检查示例项目中fontcustom文件夹,其中包含一个node.js脚本,可以将.css文件自动转换为.plist。
如果您发现了任何其他很好的免费网络字体,请为该字体创建.plist文件,并贡献给这个存储库。
这些代码可在MIT许可协议下使用。如果您打算使用它,请阅读各个字体的许可协议。