这篇文章主要给大家介绍了关于Swift中图片资源使用流程的优化方法的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
前言
去年发布的Xcode9支持在代码编辑中直接插入图片,类似如下效果

但用了一段时间以后还是不太喜欢,换回了原来的方法。
本篇中许多实现细节已经在 iOS中多语言本地化流程的优化中写过,没再重复,若有疑问建议先阅读该文章。
传统的方法
1
2
3
4
|
let closeImage = UIImage(named: "close" )
let closeImage = NSImage(named: NSImage.Name( "close" ))
|
是不是看上去都感觉心累。
如何优化
思路和 iOS中多语言本地化流程的优化一样,使用脚本将资源文件映射到静态变量,即可直接调用:
Build Phases中新建一个 Run Script,填入以下脚本:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# Assets.xcassets文件夹路径
assetsFolder= "${SRCROOT}/${PROJECT_NAME}/Assets.xcassets"
# 生成的swift文件路径(根据个人习惯修改)
utilsFile= "${SRCROOT}/${PROJECT_NAME}/Source/Utils/AssetsUtils.swift"
touch $utilsFile
# 兼容iOS和macOS的处理
echo -e "#if os(OSX) typealias Image = NSImage typealias ImageName = NSImage.Name #elseif os(iOS) import UIKit typealias Image = UIImage typealias ImageName = String #endif" > "${utilsFile}"
# 使用extension来扩展Image
echo -e " extension Image {" >> "${utilsFile}"
# 遍历资源文件夹,将每个资源拼接成静态变量输出到swift文件中
for folder in `ls $assetsFolder`
do
if [[ $folder =~ ".imageset" ]]
then
asset=${folder/.imageset
1 本网站名称:米米素材网
2 本站永久网址:https://www.mimisucai.cn
3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权进行删除处理。
4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
|
发表评论