用iconfont和圖片比較,不需要導(dǎo)入太多的圖片,節(jié)省了空間,然后有個(gè)效果圖,用圖標(biāo)有個(gè)高亮的狀態(tài),用iconfont沒有這個(gè)狀態(tài)!自己來體會(huì)下下哇:

11.gif
首先我們來制作iconfont。
https://icomoon.io/#home 補(bǔ)充一個(gè)https://tinypng.com/
進(jìn)入后點(diǎn)擊這個(gè)

1.png
我們可以自定義導(dǎo)入想要制作的圖標(biāo)

2.png
也可以在系統(tǒng)默認(rèn)的圖標(biāo)庫里添加

3.png
加好后點(diǎn)擊下方的下載

4.png
OK,這個(gè)時(shí)候我們需要的東西就有了!點(diǎn)開文件夾,將

7.png
.ttf文件導(dǎo)入工程,然后點(diǎn)擊plist文件添加

5.png
哈哈,基本工作已經(jīng)完成了。
我們?cè)趧偛畔螺d的文件夾里找到.svg的文件,可以直接將后綴改成.XML,
每一個(gè)<glyph>標(biāo)簽對(duì)應(yīng)一個(gè)矢量圖標(biāo),包含它對(duì)應(yīng)的unicode代碼和名稱。我們就是通過這個(gè)代碼在Xcode中使用這些圖標(biāo)。這些代碼是&#xXXXX格式的,在Xcode中需要轉(zhuǎn)換成\UXXXXXXXX格式的。可以使用在線編碼工具進(jìn)行轉(zhuǎn)譯:http://tools.jb51.net/transcoding/decode_encode_tool。
//
// ViewController.m
// iconfont
//
// Created by WangLe on 16/8/8.
// Copyright ? 2016年 WangLe. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 100, 50)];
label.font = [UIFont fontWithName:@"icomoon" size:35];
label.text = @"\U0000E60f";
label.textColor = [UIColor blueColor];
[self.view addSubview:label];
UIButton * btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.frame = CGRectMake(100, 200, 100, 100);
btn.titleLabel.font = [UIFont fontWithName:@"icomoon" size:30];
[btn setTitle:@"\U0000E60f" forState:UIControlStateNormal];
[btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
[self.view addSubview:btn];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
效果圖:

6.png
哈哈,4不4很屌!
iconfont的優(yōu)點(diǎn)就是在開發(fā)過程中可以對(duì)圖標(biāo)對(duì)樣式進(jìn)行修改,不需要考慮分辨率適配啊什么@2x,@3x之類的煩雜問題。缺點(diǎn)就是若要新增圖標(biāo)的話略麻煩!不過都不是問題,把selection.json文件導(dǎo)入生成器中,然后加入你想加入的圖標(biāo),然后再生成.ttf就可以了。