xcassets 中的所有图像,然后如何加载从我的包中的 nib 引用的图像

Posted

技术标签:

【中文标题】xcassets 中的所有图像,然后如何加载从我的包中的 nib 引用的图像【英文标题】:All images in xcassets, then how load the image referenced from a nib in my bundle 【发布时间】:2016-01-06 15:45:48 【问题描述】:

在我的 ios 项目中,我创建了一个名为:PaoPaoImages.xcassets 的 xcasset 然后我将所有图像放入 PaoPaoImages.xcassets。

我有一个名为:a.xib 的 xib 文件,我将它编译成 a.nib。 然后我将 a.nib 放入一个名为:paopao.bundle 的包中。

所以,现在,我在 PaoPaoImages.xcassets 中的图像和在 PaoPao.bundle 中的笔尖。笔尖参考图像。 然后,我运行我的项目,笔尖无法显示图像。

我被难住了……有什么建议吗?

【问题讨论】:

这和编码有关系吗? 不要对编码做任何事情。我的意思是:我在 PaoPaoImages.xcassets 中的图像,我在 PaoPao.bundle 中的 nib。笔尖参考图像。现在,我运行我的项目,笔尖无法显示图像。非常感谢。 【参考方案1】:

为了从资产目录访问图片,您只需要访问资产组的名称,无需任何扩展。

因此,如果您将名为 @"my-button@2x.png" 的图像添加到资产目录,它将创建一个名为 my-button 的资产组。

现在,您所要做的就是像这样访问图像:

在编码中使用以下行

[UIImage imageNamed:@"my-button"];

而不是

[UIImage imageNamed:@"my-button.png"];

此外,您可以通过重命名资产组(不重命名图像)或更改其单个组件来编辑资产组。这将允许您遵循更简单的命名约定,并在不同的 UIScreen 比例之间显示完全不同的资产,而无需任何比例检查。

为了合并不同设备尺寸的图像,您可能需要在资产目录组选项的“设备”子标题下切换它。

【讨论】:

非常感谢!但是,我的意思是:我在 PaoPaoImages.xcassets 中的图像,我在 PaoPao.bundle 中的 nib。笔尖参考图像。现在,我运行我的项目,笔尖无法显示图像。【参考方案2】:

==> 在这里查看代码尝试一下:-

NSBundle *myImageBundle=[NSBundle bundleWithPath: myBundlePath];

NSArray *ImageURLs=[myImageBundleURLsForResourcesWithExtension:@"png" subdirectory:nil];

NSLog(@"imageURLS: %@",ImageURLs);

=>这里参考更多试试吧:-

Access Asset Catalog programmatically

Load image from bundle with IOS

【讨论】:

对不起,我的意思是:我的图片在 PaoPaoImages.xcassets 中,我的笔尖在 PaoPao.bundle 中。笔尖参考图像。现在,我运行我的项目,笔尖无法显示图像。

以上是关于xcassets 中的所有图像,然后如何加载从我的包中的 nib 引用的图像的主要内容,如果未能解决你的问题,请参考以下文章

无法从 CocoaPods 中的 .xcasset 加载图像

如何使用 swift 将 Images.xcassets 中的图像加载到 UIImage 中

如何将 Images.xcassets 中的图像加载到 UIImage 中

如何使用 swift 将 Images.xcassets 中的图像加载到 UIImage 中

如何在 iOS 中从 Images.xcasset 加载图像集(捆绑包)

Swift如何引用不在情节提要的* .xcassets文件夹中的图像文件