以编程方式将图像添加到TableView单元格

时间:2011-08-24 17:17:42

标签: objective-c iphone xcode swift

我有一个UITableView从服务器获取信息并将数据发布到表视图中。每个单元格内部都是来自服务器的信息。

就本例而言,假设我们从服务器获取的信息是数字:1,2,3,4。

我想要做的是在单元格的左侧添加图像(以编程方式,因为涉及if语句等),并在其旁边添加文本(1,2等)。

基本上,我希望每个单元格看起来像这样:

 _____________________________________
| (IMAGE) (TEXT)                      | --CELL 0
--------------------------------------
 _____________________________________
| (IMAGE) 2                           | --CELL 1
--------------------------------------

请原谅我的粗略插图。 :)

5 个答案:

答案 0 :(得分:20)

你去:

cell.imageView.image = [UIImage imageNamed:@"image.png"];

夫特:

cell.imageView?.image = UIImage(named: "image.png")

答案 1 :(得分:8)

您可以将图像和文本添加到UITableViewController子类中的UITableViewCell,如下所示:

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

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }

    [[cell imageView] setImage:anImage];
    [[cell textLabel] setText:[NSString stringWithFormat:@"%d",[indexPath row]];

     return cell;
}

您可以利用UITableViewCell的一些“内置”属性,例如imageView,textLabel和detailTextLabel。有关详细信息,请查看Table View Programming Guide

答案 2 :(得分:5)

第一个答案的Swift 2.0版本是:

cell.imageView?.image = UIImage(named: "image.png")

答案 3 :(得分:3)

UITableViewCell对象具有imageView属性;你可以设置这个图像视图的图像,它会自动在正确的位置显示图像,旁边有标题。

答案 4 :(得分:0)

// create a rectangle box for image view

UIImageView *iconImage = [[UIImageView alloc] init];
iconImage.frame = CGRectMake(12,4,53.5,53.5);

// Create a label for cells
UILabel *cellName = [[UILabel alloc] initWithFrame:CGRectMake(75,18,200,20)];
cellName.font = [self fontForBodyTextStyle];

NSString *cellNameStr = [NSString stringWithFormat:@"%@",self.tableCellNames[indexPath.row]];

// Select path row tab actions
switch (indexPath.row) {
    case 0:

        cellName.text = cellNameStr;
        iconImage.image = [UIImage imageNamed:@"condition.png"];
        [cell.contentView addSubview:iconImage];
        [cell.contentView addSubview:cellName];

        break;

    case 1:
       cellName.text = cellNameStr;
        iconImage.image = [UIImage imageNamed:@"videos.png"];
        [cell.contentView addSubview:iconImage];
        [cell.contentView addSubview:cellName];
        break;

    case 2:
        cellName.text = cellNameStr;
        iconImage.image = [UIImage imageNamed:@"provider.png"];
        [cell.contentView addSubview:iconImage];
        [cell.contentView addSubview:cellName];
        break;

    case 3:
        cellName.text = cellNameStr;
        iconImage.image = [UIImage imageNamed:@"info.png"];
        [cell.contentView addSubview:iconImage];
        [cell.contentView addSubview:cellName];
        break;

    default:
        NSAssert(NO, @"Unhandled value in cellForRowAtIndexPath");
        break;
}