我有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];
等等......任何人,帮助。
此致
答案 0 :(得分:2)
根据您的评论
以下方法可以帮助您
- (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张同名的图像。在构建你的app时,你会收到一个重复的符号警告。
对于内存有效使用pathforresource类型而不是为UIImage命名的映像,因为它将在ViewControllers上有一些缓存内存。
希望它有所帮助!!!