如何在 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 加载图像集(捆绑包)的主要内容,如果未能解决你的问题,请参考以下文章

如何在ios中从UIImage设置图像

如何在 iOS 4 中从 UIViews 加载 nib?

如何在 iOS 中从 MTKView 制作屏幕截图?

如何在 iOS 中从 UITableView 播放选定的媒体项?

如何在 iOS 7 中从 WebApp 打开 Safari

如何在 iOS 中从 webview 返回到 rootview?