Mit dequeueReusableCellWithIdentifier für benutzerdefinierte Zellen

Lassen Sie uns sagen, dass ich

- (UITableViewCell*)tableView:(UITableView*) cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
    static NSString *cellID = @"Cell Identifier";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];

    if (!cell)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellID];
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
    }
    else
    {
        return cell;
    }

    UILabel * nameLabel = [[UILabel alloc] initWithFrame: CGRectMake( 0, 15, box.size.width, 19.0f)];
    nameLabel.text = name;
    [nameLabel setTextColor: [UIColor colorWithRed: 79.0f/255.0f green:79.0f/255.0f blue:79.0f/255.0f alpha:1.0f]];
    [nameLabel setFont: [UIFont fontWithName: @"HelveticaNeue-Bold" size: 18.0f]];
    [nameLabel setBackgroundColor: [UIColor clearColor]];
    nameLabel.textAlignment = NSTextAlignmentCenter;
    [cell addSubview: nameLabel];
}

Was ist, dass Sie gehen zu tun?

Wenn Zelle ist nicht gleich null, und lassen Sie uns sagen, dass Sie in Zeile 5, wird es wieder die Zelle für Zeile 5 mit den genauen text labels, etc?

Grundsätzlich, meine Frage ist, wenn Sie benutzerdefinierte Zellen mit Beschriftungen, imageviews, etc. Wie verwenden Sie cellForRowAtIndexPath mit dequeueReusableCellWithIdentifier?

  • es ist die gleiche für tableviewcell ob custom oder nicht. Sie bekommen das cell-Objekt und setzen Sie alle seine Staaten und dann fügen Sie Ihre Inhalte. Also ja, Sie haben zu Bereinigung der Inhalte in den Beschriftungen/Bildern (durch Einstellung auf null) und neue Inhalte anzubieten.
  • In diesem code gibt es keinen Weg, um wieder Zugriff auf das UILabel-Objekt außer durch aufzählen subviews der Zelle, die ist ziemlich hässlich. Besser ist die Verwendung einer Unterklasse von UITableViewCell hat ein UILabel-Eigenschaft, so dass es leicht zugänglich
InformationsquelleAutor | 2013-07-16
Schreibe einen Kommentar