1. 为什么我放弃了图片图标,选择了iconfont?
做uni-app开发的朋友,尤其是刚入门的新手,在配置底部导航栏tabBar图标时,大概率都经历过这样的阶段:先在各大图标网站找一堆PNG或SVG图标,然后小心翼翼地切成@2x、@3x不同尺寸,再一股脑儿塞进static目录里。最后在pages.json里配置iconPath和selectedIconPath,测试时发现安卓和iOS显示效果不一致,或者在高分屏上图标模糊,又得回头重新切图调整。这个过程不仅繁琐,而且一旦产品经理说“这个图标颜色能不能动态变一下?”,或者“我们换个主题色吧”,你就得准备重做一套图标,开发效率大打折扣。
我踩过几次坑之后,彻底转向了阿里巴巴矢量图标库(iconfont)。这绝对是一个能极大提升uni-app开发幸福感的方案。简单来说,iconfont提供的是字体图标。你可以把它理解为一套特殊的“字体”,这套“字体”里的每一个“字”都不是字母或汉字,而是一个个设计好的图标。既然是字体,它天然就拥有矢量、无限缩放不失真、通过CSS轻松修改颜色和大小的特性。把这些特性用在tabBar上,意味着你不再需要为不同屏幕准备多套图片,改颜色也只需要改一行CSS代码,甚至可以实现根据用户主题色动态切换图标颜色的高级效果。
更重要的是,iconfont与uni-app的整合方案非常成熟。通过引入一个.ttf字体文件,并在pages.json中进行简单配置,你就能让tabBar的图标“活”起来。无论是从开发效率、后期维护,还是从应用性能(减少HTTP请求,图标内联)来看,这都是一条更优的路径。当然,这条路也不是完全平坦,特别是涉及到微信小程序平台时,有一些“坑”需要提前规避,这也是我后面会重点分享的经验。接下来,我就带你从零开始,手把手实现这套高效、动态的tabBar图标方案。
2. 手把手实战:从iconfont到uni-app的完整流程
2.1 在iconfont上创建你的专属图标项目
首先,访问阿里巴巴矢量图标库官网。如果你还没有账号,注册一个非常快。登录后,首页就是一个巨大的搜索框,这里汇聚了海量的图标资源。
假设我们正在开发一个资讯类APP,底部tabBar需要“首页”、“热点”、“关注”、“我的”这四个图标。我们直接在搜索框输入关键词,比如“首页”,你会看到成百上千个相关图标。别急着随便点一个就下载,建立项目管理的思维是关键。我建议你这样做:看到一个风格、设计符合你APP调性的图标,先点击图标上的“购物车”按钮,把它“添加入库”。用同样的方法,把“热点”、“关注”、“我的”这几个关键词下的心仪图标都加入购物车。
全部选好后,点击页面右上角的购物车图标,你会看到所有刚才挑选的图标。这时,点击“添加至项目”。如果你是第一次使用,系统会提示你创建一个新项目。强烈建议你为当前这个uni-app应用单独创建一个项目,比如命名为“XX新闻APP-TabBar图标”。这样做的好处是,后期如果某个图标需要微调,或者要新增一个tab,你都可以在这个独立项目里管理,不会影响到其他项目的图标,非常清晰。
创建好项目后,你就进入了项目详情页。在这里,你可以对每个图标进行精细化的编辑。对于tabBar图标,我们通常需要两个状态:默认未选中状态和选中高亮状态。在iconfont项目中,你可以为同一个图标符号,设置不同的颜色并保存为两个“字体class”。但更常见的做法是,我们只使用一个图标符号,通过代码来控制它的颜色。所以,在项目里,我们确保这四个图标都已在库中即可。记得点击右上角的“下载至本地”按钮旁边,选择“Font class”模式,然后点击“下载”。不过先别急,我们还有关键配置要做。
2.2 获取核心代码:Unicode与字体文件
下载的ZIP包解压后,里面文件很多,但我们只需要关注两个核心东西:
iconfont.ttf

1852

被折叠的 条评论
为什么被折叠?



