在刚刚接触iOS开发的时候,每次涉及到图标按钮等绘制工作时,都觉得无比繁琐。因为我们需要将尺寸合适图片格式的素材加入到项目中,设置一系列冗杂的UIImageView相关设置。当然,如果需要在不同分辨率下显示,我们还需为一个图标准备多个不同分辨率的素材。当你的设计改变,仅仅想要将一个小图标的颜色进行替换时,就不得不重新制作图片素材,并在项目中进行替换

你看到了,加粗的关键词都是我对这种开发模式的吐槽。

在之前的文章里,我就已经向大家强烈安利过iconfont,今天终于可以为它单独写一篇文章。

iconfont简介

到如今,我们拥有了iconfont技术,在前端、客户端等领域都被广泛使用。简单来说,就是它将图标素材转换为矢量字体文件的形式在界面中进行展示。

如你所见,它是矢量素材,我们不需要为了不同分辨率下分别进行设置,像你的UILabel中的文字一样,它是一直高清的。

同时,它是一种字体,所以当你想要更换颜色时,只需要像更换UILabel颜色一样,对它的颜色进行代码设置

当然,更重要的是,你不再需要图片格式的素材,客户端的体积和性能表现也会有相应提升。

在这里,向大家强烈推荐阿里巴巴的iconfont图标库

LYIconfont介绍

当然,在iconfont的使用过程中,我也遇到了一些令人懊恼的问题。比如,要想使用一个iconfont形式的图标,我需要编写一大堆繁琐的代码,如你所见:

1
2
3
4
5
UIButton *reLocate = [[UIButton alloc] initWithFrame:CGRectMake(DEAppWidth - 90, 15, 80, 15)];
[reLocate setTitle:@"\U0000e8a4 重新定位" forState:UIControlStateNormal];
[reLocate setTitleColor:DEColor(26, 152, 252) forState:UIControlStateNormal];
reLocate.titleLabel.font = [UIFont fontWithName:@"iconfont" size:15.0];
reLocate.contentHorizontalAlignment = NSTextAlignmentRight;

这是对一个UIButton形式的iconfont图标进行设置所需的代码量。

所以我对诸如此类的设置代码进行了封装,方便iconfont形式素材的使用。

这里是项目地址。如果它对你有帮助,希望点一个star~

使用方式

  • 项目中引入LYIconfont.hLYIconfont.m文件
  • 在需要设置iconfont图标的文件中引入LYIconfont.h头文件

调用方式:

  • 获取一个UIButton类型的图标:
1
UIButton *iconfontBtn = [LYIconfont LYIconfontButtonWithFrame:frame code:@"\U0000e6e9" color:someColor size:25.0];
  • 获取一个UILabel类型的图标:
1
UILabel *iconfontLabel = [LYIconfont LYIconfontLabelWithFrame:frame code:@"\U0000e6e9" color:someColor size:25.0];

参数解析:

  • frame

你的按钮或标签形式的图标frame

  • code

你的图标素材编码

  • color

你的图标颜色

  • size

你的图标尺寸