用iconfont和图片比较,不需要导入太多的图片,节省了空间,然后有个效果图,用图标有个高亮的状态,用iconfont没有这个状态!自己来体会下下哇:
首先我们来制作iconfont。
https://icomoon.io/#home 补充一个https://tinypng.com/
进入后点击这个
我们可以自定义导入想要制作的图标
也可以在系统默认的图标库里添加
加好后点击下方的下载
OK,这个时候我们需要的东西就有了!点开文件夹,将
.ttf文件导入工程,然后点击plist文件添加
哈哈,基本工作已经完成了。
我们在刚才下载的文件夹里找到.svg的文件,可以直接将后缀改成.XML,
每一个<glyph>标签对应一个矢量图标,包含它对应的unicode代码和名称。我们就是通过这个代码在Xcode中使用这些图标。这些代码是&#xXXXX格式的,在Xcode中需要转换成\UXXXXXXXX格式的。可以使用在线编码工具进行转译: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
效果图:
哈哈,4不4很屌!
iconfont的优点就是在开发过程中可以对图标对样式进行修改,不需要考虑分辨率适配啊什么@2x,@3x之类的烦杂问题。缺点就是若要新增图标的话略麻烦!不过都不是问题,把selection.json文件导入生成器中,然后加入你想加入的图标,然后再生成.ttf就可以了。