【背景】
在Xcode中,通过拖拽,已经把一个图片,拷贝到Xcode的项目的images的子目录下了:
现在在代码里面,希望使用:
let ownedSchoolCoinBgView = UIImageView(image: UIImage(named:"school_coin/school_coin_top_bg.png"))
去显示,结果没有正确显示图片。
[解决过程]
1.搜:
swift images subfolder image UIImageView
参考:
How do I get a file within a subfolder in Resources in Xcode? – iPhone Dev SDK
说是:
不需要添加子路径名,直接调用图片路径即可。
但是问题来了:
要是两个图片,在不同之文件夹下,但是同名,怎么办?
xcode不允许即使是之文件夹下,也不允许同名?
先不管。
先去试试,直接调用,不加子文件夹路径:
let ownedSchoolCoinBgView = UIImageView(image:UIImage(named:"school_coin_top_bg.png"))
貌似是已经获得image的值了:
然后可以看到,对应的image的path也是正常的:
然后图片的确可以显示了:
[总结]
xcode中,images文件夹下面,如果创建之文件夹,把图片放到子文件夹下面的话,则是:
直接调用图片文件名,不需要加之文件夹路径即可。
比如:
图片是放在
images/school_coin/school_coin_top_bg.png
但是代码直接调用:
let ownedSchoolCoinBgView = UIImageView(image:UIImage(named:"school_coin_top_bg.png"))
即可。
【后记】
再去试试,故意弄两张同名,但是放在images代码,不同路径下的图片,看看:
xcode中释放允许放进去
如果允许,代码中如何制定调用某张图片
测试的结果是:
新增加的,同名的文件,会无效:
在你改文件名的那一刻,实际上变成了和之前已经存在的文件,变成同一个了:
导致,我故意把别的图片拷贝进去
然后改名和另外子文件夹下名字一样的图片,结果:
两张图片,后来改名字的那个,就丢失了,只剩下两个图片,预览时都是一样的了:
结论:
xcode中,images厦门允许建立子文件夹,
虽然不同之文件夹下面,貌似允许同名-》xcode不会提醒你出错
但是实际上重名的文件,则是无效的,没用的-》和之前已有文件名的文件变成同一个图片了。
并且,根据:
How do I get a file within a subfolder in Resources in Xcode? – iPhone Dev SDK
的解释:
我们此处所看到的images下面的字文件夹,实际上是group,而不是directory
你所打包出来的app,里面应该是有个images文件夹,里面有所有的图片
-》同名的图片,后来的图片会和之前的图片一样的,后来的图片的文件,是无效的。。