在使用绝对路径加载图像时需要一点帮助

Posted

技术标签:

【中文标题】在使用绝对路径加载图像时需要一点帮助【英文标题】:Need a little help in loading image with absolute path 【发布时间】:2013-03-12 11:08:37 【问题描述】:

我有 400 张具有重复名称的图像,在我的项目中包含的文件夹中分层划分,现在我想使用绝对路径加载图像,我尝试使用 imagenamed 但不是加载图像,而是空框显示。现在我需要一些帮助来了解如何使用绝对路径显示图像。

我的项目的层次结构

Project
     -> Project Files (i-e App Deligate and view controllers)
     -> Resources
            ->Images
                  ->1
                      ->1.jpg
                      ->2.jpg
                      ->3.jpg
                  ->2
                      ->1.jpg
                      ->2.jpg
                      ->3.jpg

我用来加载图像的方法

[self.leftImage setImage:[UIImage imageNamed:@"Images/1/1.jpg"] forState:UIControlStateNormal];

等等...任何人,帮助。 问候

【问题讨论】:

您不能在 XCode 项目中使用相同命名的图像。因为在构建创建时,XCode 创建了一个文件夹(又名主包)来存储它的所有资源。它不指手动创建的文件夹(如示例中的 1、2)。所以在那里相同的命名图像被替换。对所有图像文件使用单独的名称。 @mrunal 我有 400 张图片,所以我不能全部重命名?你能建议我一个使用绝对路径或类似方法获取图像的解决方案吗? 对不起,它的规则是苹果自己设定的。为了更好的方法,下载一些文件重命名管理器并重命名所有这些文件。在您的代码中,您可能需要自己更改。 【参考方案1】:

根据您的评论

以下方法可能对你有所帮助

- (NSString *)pathForResource:(NSString *)name ofType:(NSString *)ext inDirectory:(NSString *)subpath;
- (NSString *)pathForResource:(NSString *)name ofType:(NSString *)ext inDirectory:(NSString *)subpath forLocalization:(NSString *)localizationName;

- (NSArray *)pathsForResourcesOfType:(NSString *)ext inDirectory:(NSString *)subpath;
- (NSArray *)pathsForResourcesOfType:(NSString *)ext inDirectory:(NSString *)subpath forLocalization:(NSString *)localizationName;

你可以试试这个代码

NSString * sample=[[[NSBundle mainBundle]pathForResource:[NSString stringWithFormat:@"1"] ofType:@".jpg" inDirectory:@"foldername"];
[self.leftImage setImage:[UIImage imageWithContentsOfFile:sample] forState:UIControlStateNormal];

而且你不能有 2 个同名的图像。在构建您的应用程序时,您将收到重复符号警告。

为了节省内存,请使用 pathforresource 类型而不是为 UIImage 命名的图像,因为它会在 ViewControllers 上有一些缓存。

希望对你有帮助!!!

【讨论】:

我没有收到任何警告,我有不同的文件夹而不是不同的组? 黄色,我告诉过你我使用的是文件夹而不是组。 嗯,我想我应该根据苹果指南更改图像名称 :) 顺便感谢您的帮助和时间。问候 @X-Factor ***.com/questions/1496373/… 我选择它作为答案 :) 谢谢

以上是关于在使用绝对路径加载图像时需要一点帮助的主要内容,如果未能解决你的问题,请参考以下文章

java 加载动态链接库怎么使用相对路径

获取 django 应用的绝对路径

java 加载动态链接库怎么使用相对路径

在asp.net中,加载图片的相对路径和绝对路径分别用啥

Gatsby JSON 中的绝对图像路径

从内容 URI 中获取搜索图像的绝对文件路径