xcode – 使用contentsOfFile的UIImage

xcode – 使用contentsOfFile的UIImage,第1张

概述我在用 self.imageView.image = UIImage(名称:“foo.png”) 在UIIMageView中选择和加载图像.我在images.xcassets下的应用程序中有图像.问题是这个特定的init缓存图像以便按照official Apple documentation重用: If you have an image file that will only be displa 我在用

self.imageVIEw.image = UIImage(名称:“foo.png”)

在UIIMageVIEw中选择和加载图像.我在images.xcassets下的应用程序中有图像.问题是这个特定的init缓存图像以便按照official Apple documentation重用:

If you have an image file that will only be displayed once and wish to
ensure that it does not get added to the system’s cache,you should
instead create your image using imageWithContentsOffile:. This will
keep your single-use image out of the system image cache,potentially
improving the memory use characteristics of your app.

我的视图允许在选择图像之前循环显示图像,因此当我循环时内存占用量不断增加,即使从该视图导航回来也不会下降.

所以我试图使用不缓存图像的UIIMage(contentsOffile:“文件路径”).在这里,我无法以编程方式获取我在images.xcassets下存储的图像的路径.

我试过用过:

NSBundle.mainBundle().resourcePath
和NSBundle.mainBundle().pathForResource(“foo”,ofType:“png”)

没有运气.对于第一个我得到了resourcePath,但是在通过终端访问它时我没有看到它下面的任何图像资产,而第二个我在使用它时得到nil.有一个简单的方法来做到这一点?

还看了几个SO问题(如this,this和this)没有运气.我是否必须将我的图像放在其他地方才能使用pathForResource()?什么是正确的方法?

很难想象之前没有人遇到过这种情况:)!

解决方法 如果需要使用pathForResource()来避免图像缓存,则无法使用images.xcassets.在这种情况下,您需要在XCode中创建组,并在那里添加图像(确保将该图像复制到copy Bundle Resources).之后只写:

var bundlePath = NSBundle.mainBundle().pathForResource("imagename",ofType: "jpg") var image = UIImage(contentsOffile: bundlePath!)
总结

以上是内存溢出为你收集整理的xcode – 使用contentsOfFile的UIImage全部内容,希望文章能够帮你解决xcode – 使用contentsOfFile的UIImage所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1068612.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存