iOS:从plist文件加载图像

时间:2012-06-01 08:06:17

标签: iphone objective-c ios xcode ipad

我试图将plist文件中的各种图像显示到UIImageView中,我编写了这样的代码:

NSDictionary *picturesDictionary = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Photos" ofType:@"plist"]];    
    imageArray = [picturesDictionary objectForKey:@"PhotosArray"];
    PhotosInAlbum.image = [UIImage imageWithContentsOfFile:[imageArray objectAtIndex:1]];

但实际上没有任何反应,我的ImageView是空的!我也有两个按钮来转发后向图像。

Plist的内容: enter image description here

5 个答案:

答案 0 :(得分:2)

plist不正确,应该是

Root ---- Dictionary
     PhotosArray ----- Array
         Item 0   ------ String -- Beach.jpg

然后将此代码添加到viewController中。确保Interface imageView链接到IBOutlet。

NSDictionary *picturesDictionary = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Photos" ofType:@"plist"]];     
NSArray *imageArray = [picturesDictionary objectForKey:@"PhotosArray"]; 
PhotosInAlbum.image = [UIImage imageNamed:[imageArray objectAtIndex:0]];

答案 1 :(得分:1)

尝试使用:

 PhotosInAlbum.image = [UIImage imageNamed:[imageArray objectAtIndex:1]];

您的[imageArray objectAtIndex:1]只返回图像名称而不是其路径,因此为了使用imageWithContentsOfFile,您必须指定图像的路径,而不仅仅是图像名称。

答案 2 :(得分:1)

PhotosInAlbum.image = [UIImage imageWithContentsOfFile:[imageArray objectAtIndex:1]];

这部分应该是这样的

PhotosInAlbum.image = [UIImage imageNamed:[imageArray objectAtIndex:1]];

答案 3 :(得分:0)

imageWithContentsOfFile:使用路径作为文件的完整路径或部分路径。 您可以使用imageNamed:方法(使用文件名)。只需替换

[UIImage imageWithContentsOfFile:[imageArray objectAtIndex:1]];

[UIImage imageNamed:[imageArray objectAtIndex:1]];

答案 4 :(得分:0)

最初,[UIImage imageNamed:[imageArray objectAtIndex:1]];会解决您的问题。 但是你无法通过这种方式解决这个问题 问题似乎在于这一行

[controller.view addSubview:PhotosInAlbum];

您的控制器可能就是这种情况。查看在您尝试添加图片查看时为零。

确保不是。如果是,那么您的PhotosInAlbum根本不会被添加为controller.view的子视图。