iconfont 技术的主要是将图标转化为字体来减少应用体积。如需在项目中使用iconfont技术,图标矢量图一开始都应合并转化为字体库。
优点:
  • 减小体积,字体文件比图片要小
  • 图标保真缩放,解决2x/3x乃至将来的nx图问题
  • 方便更改颜色大小,图片复用
缺点:
  • 只适用于纯色icon
  • 使用unicode字符难以理解
  • 需要维护字体库
字体管理
字体管理方式分为两种:在线管理( iconfont.cn)和FontForge工具。

 
字体库生成
这里推荐两个比较好用的网站iconmoon和iconfon,个人在做网页的时候,经常会在iconmoon上制作字体图标。如果设计师给你了字体库最好,如果给你的是 .svg 文件,就需要自己去转为字体库了。这里以iconmoon为例制作字体库,iconmoon需要FQ。
1、导入设计师给的 .svg 文件
2、点击Generate Font 生成字体库,如下图
3、打开下载的文件夹,如下图
4、将.ttf 的字体库,导入项目中,要确保在下图路径中可以看到字体库
5、在plist文件中,添加字段Fonts provided by application并在该字段下添加GWH_search.ttf。工程中便可使用字体库了。
6、打开demo.html,可以看到图标字体的Unicode编码
使用的时候只需要将图标对应的Unicode编码转化为text字符串即可,转化方式’\U0000 + 对应编码’
示例:
  • [_textLabelfontWithIcon:@"\U0000e900"size:14color:[UIColorredColor]];

    UIImageView *imgV = [[UIImageViewalloc] initWithFrame:CGRectMake(100, 100, 30, 30)];
    [imgV setImage:kImageFont(@"\U0000e900", 17, [UIColorgreenColor])];
    [self.viewaddSubview:imgV];

    UIButton *iconBtn = [[UIButtonalloc] initWithFrame:CGRectMake(100, 150, 30, 30)];
    [iconBtn setTitleWithIcon:@"\U0000e900"size:14color:[UIColormagentaColor]];
    [self.viewaddSubview:iconBtn];

效果:
分类:
UIImage+IconFont.m
  • + (UIImage *)imageWithIcon:(NSString *)iconCode size:(NSUInteger)size color:(UIColor *)color {
        CGSize imageSize = CGSizeMake(size, size);
        // opaque:NO 不透明
        UIGraphicsBeginImageContextWithOptions(imageSize, NO, [[UIScreenmainScreen] scale]);
        UILabel *label = [[UILabelalloc] initWithFrame:CGRectMake(0, 0, size, size)];
        label.font = [UIFontfontWithName:@"GWH_search"size:size];
        label.text = iconCode;
        if(color){
            label.textColor = color;
        }
        [label setNumberOfLines:0];
        label.textAlignment = NSTextAlignmentCenter;
        // 渲染自身
        [label.layerrenderInContext:UIGraphicsGetCurrentContext()];
        UIImage *retImage = [UIGraphicsGetImageFromCurrentImageContext() imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
        UIGraphicsEndImageContext();
        return retImage;
    }
UIButton+IconFont.m
  • - (void)setTitleWithIcon:(NSString *)iconCode size:(NSInteger)size color:(UIColor *)color {
        [selfsetTitle:iconCode forState:UIControlStateNormal];
        self.titleLabel.font = [UIFontfontWithName:@"GWH_search"size:size];
        if (color) {
            [selfsetTitleColor:color forState:UIControlStateNormal];
        }
    }
UILabel+IconFont.m
  • - (void)fontWithIcon:(NSString *)iconCode size:(NSInteger)size color:(UIColor *)color {
        self.font = [UIFontfontWithName:@"GWH_search"size:size];
        self.text = iconCode;
        if (color) {
            self.textColor = color;
        }
    }
参考链接:
http://johnwong.github.io/mobile/2015/04/03/using-icon-font-in-ios.html

转载于:https://www.cnblogs.com/10-19-92/p/5819124.html

iOS iconfont 图标字体相关推荐

  1. ios label 高度紫石英_iOS中iconfont(图标字体)的基本使用

    前言 近日在做项目时,项目组有提出iconfont的技术,便开始查询相关资料.iconfont技术的主要目的是为减少应用体积而生.首先icon代表图标 font代表字体.此技术便是将图标转化为字体,从 ...

  2. icon-font 图标字体的使用

    icon-font 图标字体的使用, 方法一:可以在icomoon下载相应的图表字体,官网为:https://icomoon.io/ 进去会提供600+的免费图表,如果想要更多的图表字体可选择Icon ...

  3. 如何在Axure中使用Iconfont图标字体

    需求背景 在原型设计中,图标是我们使用率非常高的元素,通常我们会选择将图标导出为图片放到Axure里使用,或者使用Axure的图标元件库,但是他们使用起来会有很多不方便的地方: 图片进行缩放会失真,无 ...

  4. 【CSS】阿里iconfont图标字体使用详解(一步一步图文示例)

    1.新建一个文件夹 font-icon 2.打开网站,登陆后,选择[我的项目] 3.新建项目 4.添加图标到项目(购物车图标) 5.下载至本地,把download.zip解压后,把download下的 ...

  5. uni-app中如何引入阿里iconfont图标字体(详细教程)

    最近的项目中用到了iconfont字体,虽然之前已经用过很多次了,但是一直没有认真的整理过,所以这次就整理一下吧. 进入iconfont首页,在这里可以选择自己想要在项目中添加的iconfont图片字 ...

  6. 手把手教你引入iconfont图标字体(方法一)

    一 unicode 打开iconfont网站:iconfont-阿里巴巴矢量图标库 挑选想要的图标,加入购物车: 全部挑选完后,点击购物车: 将购物车中的图标加入到项目中: 全部挑选完后,点击购物车: ...

  7. WPF、C# iconfont图标字体只显示框框

    在我们写C# 或者WPF 程序的时候,引入字体图标的时候,新手会出现下面这个问题: 下面说下常见的两个原因吧: 1.是文件路径定义的不对: <TextBlock Text="&quo ...

  8. 微信小程序如何引入iconfont图标字体库

    我选择引入字体图标库的原因是加载图片会影响小程序页面的打开速度 第一步: 去阿里巴巴的图标库找到你喜欢的图标加入购物车添加到你创建的项目 在下载的文件中把css文件后缀名改为wxss放入你的小程序项目 ...

  9. 获取和使用某些网站的iconfont图标字体

    1.打开页面->右键->查看网页源码->搜索"type="text/css"找到该网页的css文件的路径. 2.打开css链接,Ctr+a->Ct ...

最新文章

  1. 理解 : UDID、UUID、IDFA、IDFV
  2. python if语句多个条件-Python中if有多个条件处理方法
  3. 2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 H题 Rock Paper Scissors Lizard Spock.(FFT字符串匹配)...
  4. #串口通信超时处理_【学院推荐】划重点!LabVIEW中串口参数需注意的几点
  5. java 验证码_Java - 验证码 - 由Kaptcha组件实现
  6. Django项目部署在Centos7
  7. CompletableFuture详解~allOf
  8. 更改sql-2008sa密码
  9. 西瓜书+实战+吴恩达机器学习(十六)半监督学习(半监督SVM、半监督k-means、协同训练算法)
  10. python socket 接口
  11. NornJ-javascript模版引擎
  12. poj1511 最短路
  13. 关于qt+vs2019报错的奇葩问题,无法定位程序输入点
  14. 【Multisim】关于Multisim仿真“过零比较器”出现的问题以及解决方法
  15. nodejs打开默认浏览器
  16. 交易就是一路风雨兼程 一路披荆斩棘 谋士社区 老锅
  17. Windows 7 Service Pack 1已发布:但是您应该安装它吗?
  18. 计算机组成原理、操作系统、数据结构和计算机网络融会贯通
  19. 【论文精读】UV-SLAM: Unconstrained Line-based SLAM Using Vanishing Points for Structural Mapping
  20. Python len()函数讲解

热门文章

  1. 8.1 QQ帐户的申请与登陆
  2. 计算机等级考试二级office考点教材+课程资料+考试题库软件
  3. Fragment切换的方式介绍和一些问题的解决
  4. Maya---多切割
  5. Qt-忽略黄色警告提示
  6. Win10快速启动栏不见了怎么办?Win10快速启动栏设置图解
  7. 我是佛前的一朵青莲(佛珠)
  8. win7系统cf连接服务器失败,win7系统玩传奇世界显示连接服务器失败的解决方法...
  9. 2022. 09 青少年机器人技术等级考试理论综合试卷(二级)
  10. 【iOS】Instruments性能检测之耗电优化