0

我用文件名和缩略图列表创建 tableView。我没有文件名的问题,但是当我将 UIImage 数组传递给 tabeView 时,我得到了错误,这是一个代码:

cell.imageView.image = [UIImage imageNamed:[arrayColletionImages objectAtIndex:indexPath.row]];

arrayColletionImages 图像我从:

player = [[MPMoviePlayerController alloc] initWithContentURL:url];
thumbnail = [player thumbnailImageAtTime:0.0 timeOption:MPMovieTimeOptionExact];
[player stop];
[arrayColletionImages addObject:thumbnail];

所有 UITableViewCell 代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"SimpleTableItem";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
}
cell.textLabel.text = [tableData objectAtIndex:indexPath.row];
cell.imageView.image = [UIImage imageNamed:[arrayColletionImages objectAtIndex:indexPath.row]];
NSLog(@"%@",indexPath);
return cell;
}
4

2 回答 2

0

数组可能不包含 UIImage 对象。记录数组中的值

<UIImage: 0xa8a5430>in log 表示它是一个 UIImage 对象,并且在cellForRow您再次使用它的代码中。

cell.imageView.image = [UIImage imageNamed:[arrayColletionImages objectAtIndex:indexPath.row]];

UIImage imageNamed:期望NSString 不是 UIImage所以删除它

cell.imageView.image = [UIImage imageNamed:[arrayColletionImages objectAtIndex:indexPath.row]];

在代码中试试这个

[cell.imageView setImage:[arrayColletionImages objectAtIndex:indexPath.row]];
于 2013-05-13T12:11:10.597 回答
0

请尝试使用这个。您正在从数组中访问图像名称,但是您已经UIImage在该数组中存储了一个对象,因此无需调用imageNamed: 所以写下这一行

cell.imageView.image = [arrayColletionImages objectAtIndex:indexPath.row];
于 2013-05-13T12:11:19.893 回答