iOS:从plist文件加载图像
我试图从一个plist文件显示各种图像到UIImageView,我写我的代码是这样的:
NSDictionary *picturesDictionary = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Photos" ofType:@"plist"]]; imageArray = [picturesDictionary objectForKey:@"PhotosArray"]; PhotosInAlbum.image = [UIImage imageWithContentsOfFile:[imageArray objectAtIndex:1]];
但实际上没有任何反应,我的ImageView是空的! 我也有两个button来转发后面的图像。
Plist的内容:
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]];
PhotosInAlbum.image = [UIImage imageWithContentsOfFile:[imageArray objectAtIndex:1]];
这部分应该是这样的
PhotosInAlbum.image = [UIImage imageNamed:[imageArray objectAtIndex:1]];
尝试使用这个:
PhotosInAlbum.image = [UIImage imageNamed:[imageArray objectAtIndex:1]];
你的[imageArray objectAtIndex:1]
将只返回图像名称而不是它的path,所以为了使用imageWithContentsOfFile你必须指定图像的path,而不是图像名称。
imageWithContentsOfFile:
使用文件的完整path或部分path。 您可以使用imageNamed:
方法(使用文件的名称)。 只要更换
[UIImage imageWithContentsOfFile:[imageArray objectAtIndex:1]];
至
[UIImage imageNamed:[imageArray objectAtIndex:1]];
最初, [UIImage imageNamed:[imageArray objectAtIndex:1]];
将解决你的问题。 但是你不能用这种方式来解决这个问题,看起来这个问题似乎与这条线是一致的
[controller.view addSubview:PhotosInAlbum];
这可能是你的控制器的情况。 视图是零目前你试图添加你的imageview。
只是确保它不是。 如果是的话,那么你的PhotosInAlbum根本就不是作为子视图添加到controller.view
。
- 目标C:使用UIImage来抚摸
- 收到NSNotification后导航到特定的UIViewController
- 检测何时从App Delegate通过UITabBarController按TabBar项目
- 如何从Swift中调用Objective-C的NSArray类方法?
- NSJSONSerialization上Swiftdynamic投射失败
- 在块外返回一个variables值 – Objective-C,iOS
- NSString保留计数-1
- interactivePopGestureRecognizer导致UITabBarController禁用交互
- 掌握CoreData(第7部分核心数据关系删除规则)