在使用绝对路径加载图像时需要一点帮助
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/… 我选择它作为答案 :) 谢谢以上是关于在使用绝对路径加载图像时需要一点帮助的主要内容,如果未能解决你的问题,请参考以下文章