我正在参与「启航计划」
导言
编码时,当咱们需要引用色彩、字体、图片等资源文件时,往往都是硬编码的方式,比方加载图片:
UIImage(named: "logo")
,明显这种字符串的硬编码不够优雅。
有多个第三方库能够帮助咱们处理这个问题,比方:SwiftGen,假如你想自界说API,那无妨看看这篇文章供给的思路。
设置
新建一个项目:MyProject,或许运用现有的项目。然后增加一个Package,咱们能够在这里保存一些资源文件和代码文件。
保存到项目的根文件夹中,并增加到项目中。
现在,项目的目录结构应该是这样的:
这时候,Package 的 name 和 library的 name 是一样的,为了便于区别,咱们把 library的 name 换成 Assets。修改的位置如图所示:
修改好后,把 Assets 增加 Frameworks,Libraries,and Embedded Content
到此,前戏完毕。接下来进入战斗~
Colors
咱们先从界说 color 开端~
当咱们用 Xcode 创立一个项目时,默认会生成 Asset.xcassets,通常咱们会把图片、色彩等资源一股脑扔进去,跟着时间的推移,资源越来越多,它就会变得臃肿,难以查找。
这里咱们先为 Colors 创立一个新的文件夹:Colors.xcassets,放在如下图所示位置
然后往其中增加几个你喜欢的色彩:
再为这些色彩界说个类型,便利后期调用:
❗️❗️❗️因为当前在另一个模块中,而不是咱们自己的iOS项目中,所以需要指定 bundle
为 .module
。不然导入该模块的目标会在自己的模块中查找色彩。
现在就能够便利的运用自界说色彩啦~
Images
接下来,再把上面的办法应用在图片上,先在如图位置创立 Images.xcassets。并增加你需要的图片。
与界说色彩类型类似,界说代表图片的类型 AppImage
能够从 Images.xcassets 文件中获取 moon图片,也能够 SF Symbols 中获取 star 图片。 运转下面的代码来查看下效果吧~
大功告成~
Fonts
接下来,看下怎么处理字体。
咱们先界说个类型 AppFont:
界说了两种字体:title 和 subtitle。
title:运用自界说字体,
subtitle:运用内置的动态类型字体 Comic Neue 提取码: a4p4
下载上面的自界说字体,并导入 Package
由于咱们现已将字体导入到包文件夹中,因而需要在Package.swift 中将其声明为资源:
这样能够保证咱们在运用或许分发这个package时,咱们的字体包含在里边。
在运用字体时,不像运用色彩或图片那样简单指定模块。咱们必须向 Core Text 的字体管理器注册字体。
将下面的代码片段增加到 AppFont.swift:
咱们还需要在应用程序启动时调用这个函数:
现在就能够运用字体了:
Tips
跟着项目中资源文件越来越多,需要对资源文件进行分组,比方图片,假如把所有的图片都界说在同一个枚举里,就显得很乱,不好区别。那怎么样能把图片分为 Tab、Login等组别呢,看下面~
给 AppImage 增加 extension,并界说枚举 Tab,里边放App的tab图片,运用时就像这样:
小结
上面的方式,xdm觉得怎么样?欢迎谈论交流~