iconfont的使用

iconfont是将图片以字体的形式展示的一种方法,清晰易缩放而且文件体积小,可以直接通过修改字体颜色和大小来改变图片大小,很方便。同时也是因为这个原因只能支持纯色图片。不过对于iOS来说,减少了各种@2x、@3x的烦恼,还是很方便的。官方文档不是很详细,下面说说如何使用,希望能帮到大家少走弯路。



第一步:点击下载到本地,将文件中的字体文件(.ttf)添加到工程中;


iconfont的使用_第1张图片

第二步:打开Info.plist文件,增加一个新的Array类型的键,键名设置为UIAppFonts(Fonts provided by application),增加字体的文件名:“iconfont.ttf“;

第三步:使用

iconfont有两种使用方法,最常用的就是用label来展示

UILabel* label = [[UILabelalloc] initWithFrame:self.view.bounds];

UIFont*iconfont = [UIFontfontWithName:@"uxIconFont"size:34];

label.font = iconfont;

label.text = @"\U00003439 \U000035ad \U000035ae \U000035af \U000035eb \U000035ec";

label.textColor = BLACKCOLOR;

[self.view addSubview: label];

fontname就是上图中蓝色标记位置 fontfamily,text内存为 \U0000加上上图红色标记位置代码的后四位,如上图个人 text就为 \U0000e662

有的时候不能使用label,只能用imageview,比如tabbaritem,这个时候就需要把icon转换为image

+ (UIImage*)imageWithIcon:(NSString*)icon

iconColor:(UIColor*)color

iconSize:(CGFloat)size{

CGFloat scale = [UIScreen mainScreen].scale;

CGFloat realSize = size * scale;//屏幕分辨率调整图片大小

UIFont *font = [UIFont fontWithName:@"iconfont" size:realSize];

UIGraphicsBeginImageContext(CGSizeMake(realSize, realSize));//设置图片尺寸

CGContextRef context = UIGraphicsGetCurrentContext();

if ([icon respondsToSelector:@selector(drawAtPoint:withAttributes:)]) {

[icon drawAtPoint:CGPointZero withAttributes:@{NSFontAttributeName:font, NSForegroundColorAttributeName: color}];

} else {

CGContextSetFillColorWithColor(context, color.CGColor);

[icon drawAtPoint:CGPointMake(0, 0) withAttributes:@{NSFontAttributeName:font}];

}

UIImage *image = [UIImage

imageWithCGImage:UIGraphicsGetImageFromCurrentImageContext().CGImage

scale:scale orientation:UIImageOrientationUp];

UIGraphicsEndImageContext();

return image;

}

6月29日补

 如何写法没错 却一直显示问号  这个时候一般是字体文件没加载上的问题  首先检查 plist文件里有没写错单词, 然后BuildPhases--BundleResources里有无文件  如果都没问题



iconfont的使用_第2张图片


拖入字体文件时使用这些选项

如果还是显示问号



让让 我要放大招了


建立一个XIB\SB文件  找一个label  设置如下属性


iconfont的使用_第3张图片

然后再运行 就OK了





你可能感兴趣的:(iconfont的使用)