手把手教你把图标当字体来用-iconfont

用iconfont和图片比较,不需要导入太多的图片,节省了空间,然后有个效果图,用图标有个高亮的状态,用iconfont没有这个状态!自己来体会下下哇:

11.gif

首先我们来制作iconfont。
https://icomoon.io/#home 补充一个https://tinypng.com/
进入后点击这个
1.png

我们可以自定义导入想要制作的图标
2.png

也可以在系统默认的图标库里添加
3.png

加好后点击下方的下载
4.png

OK,这个时候我们需要的东西就有了!点开文件夹,将
7.png

.ttf文件导入工程,然后点击plist文件添加
5.png

哈哈,基本工作已经完成了。
我们在刚才下载的文件夹里找到.svg的文件,可以直接将后缀改成.XML,
每一个标签对应一个矢量图标,包含它对应的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

效果图:


6.png

哈哈,4不4很屌!
iconfont的优点就是在开发过程中可以对图标对样式进行修改,不需要考虑分辨率适配啊什么@2x,@3x之类的烦杂问题。缺点就是若要新增图标的话略麻烦!不过都不是问题,把selection.json文件导入生成器中,然后加入你想加入的图标,然后再生成.ttf就可以了。

你可能感兴趣的:(手把手教你把图标当字体来用-iconfont)