最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【已解决】如何用Swift调用Xcode中images子目录下的图片

Swift crifan 5748浏览 0评论

【背景】

在Xcode中,通过拖拽,已经把一个图片,拷贝到Xcode的项目的images的子目录下了:

has drag png to images of xcode

现在在代码里面,希望使用:

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的值了:

UIview viewDelegate UIResponder containing value

然后可以看到,对应的image的path也是正常的:

imageAsset UIImageAsset iamgepaths value path

然后图片的确可以显示了:

image show normally on iOS emulator iphone6 iOS 9.0 13A340

 

[总结]

xcode中,images文件夹下面,如果创建之文件夹,把图片放到子文件夹下面的话,则是:

直接调用图片文件名,不需要加之文件夹路径即可。

比如:

图片是放在

images/school_coin/school_coin_top_bg.png

但是代码直接调用:

let ownedSchoolCoinBgView = UIImageView(image:UIImage(named:"school_coin_top_bg.png"))

即可。

 

【后记】

再去试试,故意弄两张同名,但是放在images代码,不同路径下的图片,看看:

xcode中释放允许放进去

如果允许,代码中如何制定调用某张图片

 

测试的结果是:

新增加的,同名的文件,会无效:

在你改文件名的那一刻,实际上变成了和之前已经存在的文件,变成同一个了:

导致,我故意把别的图片拷贝进去

然后改名和另外子文件夹下名字一样的图片,结果:

两张图片,后来改名字的那个,就丢失了,只剩下两个图片,预览时都是一样的了:

same image under sub folder1

 

image under sub folder2 same with sub foler1

结论:

xcode中,images厦门允许建立子文件夹,

虽然不同之文件夹下面,貌似允许同名-》xcode不会提醒你出错

但是实际上重名的文件,则是无效的,没用的-》和之前已有文件名的文件变成同一个图片了。

 

并且,根据:

How do I get a file within a subfolder in Resources in Xcode? – iPhone Dev SDK

的解释:

我们此处所看到的images下面的字文件夹,实际上是group,而不是directory

你所打包出来的app,里面应该是有个images文件夹,里面有所有的图片

-》同名的图片,后来的图片会和之前的图片一样的,后来的图片的文件,是无效的。。

转载请注明:在路上 » 【已解决】如何用Swift调用Xcode中images子目录下的图片

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
84 queries in 0.233 seconds, using 22.12MB memory