我想在Table View单元格中显示一个小图像和日期,用户可以单击该单元格以显示包含更多信息的另一个视图。所有这些数据都存储在plist中(图像,日期和其他数字)。
我似乎无法:
获取要在单元格内显示的图像 - 我将所有图像添加到Supporting Files文件夹中,并尝试将文件名输入到它不接受的plist中。
添加用户点击单元格的功能,并查看plist数据中的更多信息。
答案 0 :(得分:1)
首先使用包含字典数组的plist构建“数据库”。这应该是这样的:
创建并NSArray
保留此plist:
@property (strong, nonatomic) NSArray *imagesList;
在viewDidLoad
中加载(假设名为“ImagesList”的plist):
NSString *path = [[NSBundle mainBundle] pathForResource:@"ImagesList" ofType:@"plist"];
self.imagesList = [[NSArray alloc] initWithContentsOfFile:path];
其余的是一些简单的UITableViewDatasource
:
#pragma mark - UITableViewDatasource
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return self.imagesList.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"myCell"];
if(!cell)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:@"myCell"];
}
NSDictionary *eachImage = [self.imagesList objectAtIndex:indexPath.row];
cell.textLabel.text = [eachImage objectForKey:@"date"];
cell.detailTextLabel.text = [eachImage objectForKey:@"additionalDetail"];
cell.imageView.image = [UIImage imageNamed:[eachImage objectForKey:@"imageName"]];
return cell;
}
不要忘记将图片放入应用包中并正确重命名。