2011-03-02 98 views
0

我想以编程方式将图像设置为UIImageView,但它不起作用。我有以下代码。IPhone UIImageView图像

[image setImage:[UIImage imageNamed:[self localImagePath:NO]]]; 

-(NSString *)localImagePath:(BOOL)forSave { 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSPicturesDirectory, NSUserDomainMask, YES); 
    NSString *picturesDirectory = [paths objectAtIndex:0]; 
    NSString *picturesPath = [picturesDirectory stringByAppendingPathComponent:@"image.png"]; 
    if (forSave || [[NSFileManager defaultManager] fileExistsAtPath:picturesPath]) { 
     return picturesPath; 
    } 
    else { 
     return [[NSBundle mainBundle] pathForResource:@"image" ofType:@"png"]; 
    } 
} 

是否有可能像设置为UIImageView的来自不同媒介的运行时间?

回答

4

imageNamed:方法只将文件名作为参数,而不是路径。它也只会在主包中查找该文件。改为使用imageWithContentsOfFile:

+0

我试过你,它在半测试中工作。我仍然需要做全面的测试。你确定函数“imageWithContentsOfFile”将适用于图片目录中的图片吗? – Neutralizer 2011-03-02 15:55:22

1

你将不得不使用两种不同的方式来加载图像

[UIImage imageNamed: name]基于一个

[UIImage imageWithContentsOfFile: filename]的资源为你本地找不到一个。

考虑更改您的方法以返回UIImage并在内部使用适当的加载方法。

+0

我第一次尝试你的指导,它没有工作。 – Neutralizer 2011-03-02 15:54:14

0

使用[UIImage imageWithContentsOfFile:[self localImagePath:NO]]而不是[UIImage imageNamed:...]作为使用localImagePath方法找到的那个。

+0

是的,它的工作!干杯! – Neutralizer 2011-03-02 15:56:16