显示图像的问题

时间:2011-03-04 09:11:02

标签: iphone objective-c cocoa-touch ipad

我开发了一款使用核心数据存储员工详细信息的iPad应用。我只有三个字段:姓名,ID和部门。在启动应用程序时,名称显示在表格视图中,在单击任何行时,相应的ID和部门将显示在详细视图中。

现在我想在详细视图中显示员工的图片,但不是将其存储在核心数据中。我在资源文件夹中有一个名为“Images”的子文件夹,其中的图片按照表格视图中显示的名称的顺序存储。

请帮助我。

2 个答案:

答案 0 :(得分:1)

使用静态方法[NSBundle mainBundle]获取表示应用程序包的对象。然后,您可以调用实例方法- (NSString *)pathForResource:(NSString *)name ofType:(NSString *)extension来获取存储图像的路径。获得路径后,可以使用图像路径创建 UIImage 的实例。然后,您可以创建 UIImageView (如果您愿意,可以在界面构建器中完成),然后您可以将图像设置为 UIImage 的实例。

例如:

NSString* pathToImage = [[NSBundle mainBundle] pathForResource:@"pictureOfJohn" ofType:@"png"];
UIImage* image = [UIImage imageWithContentsOfFile:pathToImage];
UIImageView* imageView = [[UIImageView alloc] init];
imageView.image = image;
[myEnclosingView addSubview:imageView];
[imageView release];

请注意, imageView 的创建和添加可以在界面构建器中完成。

答案 1 :(得分:1)

您应该阅读有关CoreData实体的瞬态属性的内容。例如,您可以轻松添加属性图像,这是暂时的(=不会将值存储到基础持久性存储中),它可以直接从文件系统读取/写入图像。换句话说,您可以将所有内容放在一个位置,一个类中没有实体,另一个类中的图像处理等等。