webentwicklung-frage-antwort-db.com.de

Programmgesteuertes Hinzufügen eines Bilds zur TableView-Zelle

Ich habe einen UITableView, der Informationen von einem Server erhält und die Daten in einer Tabellensicht veröffentlicht. In jeder Zelle befinden sich die Informationen vom Server. 

Angenommen, die Informationen, die wir vom Server erhalten, sind Zahlen: 1, 2, 3, 4.

Was ich tun möchte, ist, ein Bild (programmgesteuert, weil es if-Anweisungen usw. enthält) zur linken Seite der Zelle und den Text (1, 2 usw.) direkt daneben hinzuzufügen. 

Grundsätzlich möchte ich, dass jede Zelle so aussieht:

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

Bitte entschuldigen Sie meine grobe Illustration. :)

19
Baub

bitte schön:

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

Schnell:

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

Sie können der UITableViewCell in Ihrer UITableViewController-Unterklasse sowohl das Bild als auch den Text wie folgt hinzufügen:

- (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 bietet einige integrierte Eigenschaften, wie beispielsweise imageView, textLabel und detailTextLabel. Weitere Informationen finden Sie in der Table View-Programmieranleitung .

8
Christopher A

Die Swift 2.0-Version der ersten Antwort lautet:

cell.imageView?.image = UIImage(named: "image.png")
5
meh-uk

UITableViewCell-Objekte haben eine imageView -Eigenschaft; Sie können das Bild dieser Bildansicht einfach einstellen und das Bild wird an der richtigen Stelle mit dem Titel daneben angezeigt.

3
jtbandes
// 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;
}
0
Vinod Joshi