在iOS項目中蟆技,一般對圖片資源要求有@2x,@3x兩套斗忌,以適配不同分辨率的設(shè)備质礼。對于有換膚需求的APP來說,還需要多套圖來匹配不同的主題织阳。這樣不但無形中增加了開發(fā)者和設(shè)計者的工作量眶蕉,而且會增大APP的體積。為了釋放開發(fā)者唧躲、設(shè)計者的雙手以及給APP“減重”造挽,iconfont被引入到iOS開發(fā)中來。
生成iconfont
生成iconfont需要矢量圖弄痹。一些網(wǎng)站提供生成iconfont的服務(wù)饭入,比如icomoon和Fontello。阿里巴巴矢量圖標庫和easyicon提供大量優(yōu)秀的矢量圖肛真。
工程配置和demo
參考教程:http://www.iconfont.cn/help/iconuse.html
使用方法
添加一個UIImage的分類方法谐丢,
//設(shè)置字體圖標
////fontName為字體名,可在demo.html中找到蚓让,如<title>IconFont</title>
+ (UIImage *)imageWithIcon:(NSString *)iconCode inFont:(NSString *)fontName size:(CGFloat)size color:(UIColor *)color {
CGSize imageSize = CGSizeMake(size, size);
UIGraphicsBeginImageContextWithOptions(imageSize, NO, [[UIScreen mainScreen] scale]);
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, size + 150, size)];
label.font = [UIFont fontWithName:fontName size:size];
label.text = iconCode;
if(color){
label.textColor = color;
}
[label.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *retImage = UIGraphicsGetImageFromCurrentImageContext();
return retImage;
}