0

我有一堆图像存储在 Xcode 中我支持的文件目录中的图像目录中。我希望能够展示其中一张图片。获得该图像的路径的最佳方法是什么?我必须先将它们复制到 Documents 目录吗?如果是这样,我该怎么做?

编辑:我尝试了以下方法将图像从支持文件复制到应用程序中的 Documents 文件夹。它成功复制,但我无法显示图像:

-(void)findImage:(NSString *)imageName
{

// First, test for existence.
BOOL success;
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *appImagePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.jpg",imageName]];

success = [fileManager fileExistsAtPath:appImagePath];
if (success)
{
    return;
}
// The writable database does not exist, so copy the default to the appropriate location.
NSString *defaultImagePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.jpg",imageName]];
success = [fileManager copyItemAtPath:defaultImagePath toPath:appImagePath error:&error];
if (!success)
{
    NSAssert1(0, @"Failed to create writable database file with message '%@'.", [error localizedDescription]);
}
self.imageDisplay.image = [UIImage imageNamed:appImagePath];
return;
}
4

1 回答 1

4

这应该可以解决问题:

[UIImage imageNamed:@"someImageName"];

编辑:一些附加信息:-imageNamed: 将在应用程序的整个主包中查找文件名为“someImageName”的图像文件(最好是 png)。您不必担心它的位置或扩展名,因为它将在 mainbundle 中搜索。您通过 xcode 中的 import-file-dialogue 导入的文件将添加到他的主包中。

这意味着:如果我导入了一个名为 myImage.png 的文件,[UIImage imageNamed:@"myImage"];从我的代码中的任何位置调用都会得到一个包含该图像的 UIImage-Object。它非常简单,也许这让你有点吃惊;)

如果您愿意,请在文档中查找:http: //developer.apple.com/library/ios/#documentation/UIKit/Reference/UIImage_Class/Reference/Reference.html

于 2013-08-05T17:24:57.313 回答