如何在 iOS 中从 Images.xcasset 加载图像集(捆绑包)
Posted
技术标签:
【中文标题】如何在 iOS 中从 Images.xcasset 加载图像集(捆绑包)【英文标题】:How To Load The Image Set(The Bundle) From Images.xcasset in iOS 【发布时间】:2015-08-07 07:43:13 【问题描述】:我之前在ios开发app的时候,总是把app的图片源放在项目的根目录下,然后用[UIImage imageNamed:@"image.png"]
加载。我什至没有包括各种尺寸和分辨率,例如 image@2x 或 image@3x。但恐怕这不是一个好习惯,因为我无法处理不同的屏幕分辨率。
现在,我想利用 Images.xcasset 来存储我所有的图像源,这样我就可以只加载包名称,并希望系统会选择图像自动使用正确的分辨率。因此,我进行了测试并将图像集放在 Images.xcasset 下并将其命名为 images,然后在我的 UIViewController.m 中尝试通过调用 [UIImage imageName:images]。结果,它没有用。所以我搜索了一个答案,发现我应该调用 [UIImage imageName:@"images60x60@2x.png"]
以加载 60pt @2x 图像。
但我认为这仍然没有解决我的问题,因为我仍在选择要加载的图像。有没有办法加载整个图像集或根据屏幕的分辨率加载图像?
请帮忙。非常感谢。
编辑:添加屏幕截图
我使用 AppIcon 作为测试
【问题讨论】:
你喜欢[UIImage imageName:images60x60@2x]
哪里?对于正常的图像加载来说,这似乎是错误的......
@lukya 来自这个答案:***.com/questions/19587139/…
[UIImage imageNamed:images] 应该可以正常工作,只要您拥有该名称的图像资产......发布代码 sn-p 和 Images.xcasset 的屏幕截图
图像资产的工作方式与目录中的任何其他图片相同。 [UIImage imageNamed:@"images.png"] 应该可以工作。
AppIcon 的东西可能很棘手...尝试对另一个图像进行相同的操作,它应该可以工作...
【参考方案1】:
正如您最后所说,您正在使用 AppIcon 作为测试。请不要 AppIcon 它是供内部使用的。尝试创建自己的 imageSet 并使用它。它应该可以工作。
【讨论】:
【参考方案2】:两件事:
-
如Ankit所说,不要使用App Icon,使用自己的设置
不要使用文件后缀。只需引用
[UIImage imageName:@"MyImage"]
(不是[UIImage imageName:@"MyImage.png"]
)
【讨论】:
以上是关于如何在 iOS 中从 Images.xcasset 加载图像集(捆绑包)的主要内容,如果未能解决你的问题,请参考以下文章