UIImage在UITableView中不显示

时间:2014-11-01 09:59:44

标签: ios objective-c cocoa-touch uitableview uiimageview

我是iOS的新手.....我创建了一个表格视图显示为联系人视图.....这里我使用以下编码显示名称和数字但我无法显示图像即使我使用了正确的代码..... plz帮助我

names = [NSMutableArray arrayWithObjects:@"Karthick", @"Gopal", @"Suresh", @"Senthil", @"Guna",nil];

images = [NSMutableArray arrayWithObjects:@"per.png",@"per.png",@"per.png",@"per.png",@"per.png", nil];

num = [NSMutableArray arrayWithObjects:@"9568421301", @"8756324103", @"856472303", @"8796523565", @"9785858569",nil];

这是我的三个阵列和

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    // Return the number of rows in the section.
    return [names count];
}



- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
  static NSString *simpleTableIdentifier = @"SimpleTableItem";

    contactTableViewCell *cell = (contactTableViewCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

    if (cell == nil) {
        cell = [[contactTableViewCell  alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
    }

    cell.name.text = [names objectAtIndex:indexPath.row];
    cell.number.text = [num objectAtIndex:indexPath.row];
    cell.conimage.image = [UIImage imageNamed:[names objectAtIndex:indexPath.row];
    return cell;
}

2 个答案:

答案 0 :(得分:1)

您必须在cellForRowAtIndexPath方法中设置图像而不是名称,如下所示

    cell.conimage.image = [UIImage imageNamed:[images objectAtIndex:indexPath.row];

cellForRowAtIndexPath中的行替换为上面的行

答案 1 :(得分:0)

我看到了可能的问题:

UIImage +imageNamed:仅适用于添加到主束的图像。检查,如果你这样做。

From the docs:

  

声明

+ (UIImage *)imageNamed:(NSString *)name
     

<强>参数
       name 文件的名称。如果这是第一次加载图像,则该方法将查找具有指定名称的图像   在应用程序的主要包中。

另一个问题可能是永远不会创建UIImageView conimage 如果是这种情况,cell.conimage.image = [UIImage imageNamed:[names objectAtIndex:indexPath.row]];将与[nil setImage:aImage];相同,与其他语言相比,这是一个有效的调用。发送给nil对象的任何消息都将导致nil - 而不是例外 为了能够看到,如果确实如此,你将不得不解释(最好用代码)你的自定义单元格类的样子。