web-dev-qa-db-fra.com

Pourquoi detailTextLabel n'est-il pas visible?

detailTextLabel n'est pas visible (code ci-dessous). Peux-tu me dire pourquoi?

 // Customize the appearance of table view cells.
 - (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];
}

// Configure the cell...

NSString *cellValue = [myListArray objectAtIndex:indexPath.row];
cell.textLabel.text = cellValue;

cell.detailTextLabel.text = @"Hello "; // This is not visible
cell.image = [myListArrayImages objectAtIndex:indexPath.row];

return cell;
}
53

detailTextLabel n'est pas affiché pour cells avec le style UITableViewCellStyleDefault. init le UITableViewCell avec UITableViewCellStyleSubtitle à la place et vous devriez voir votre detailTextLabel.

cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
127
Opsimath

Ou si vous utilisez Interface Builder, remplacez la propriété de cellule Style par Subtitle. :)

Style cell property in Interface Builder.

26
reinaldoluckman

Je veux juste mentionner que le libellé de la référence de classe UITableViewCell peut être un peu déroutant sur ce problème:

(Après avoir décrit chaque type de cellule)

"Discussion Dans tous ces styles de cellule, la plus grande des étiquettes de texte est accessible via la propriété textLabel et la plus petite via la propriété detailTextLabel."

Il peut sembler dire que tous les types de cellules incluent un detailTextLabel, mais si vous les lisez attentivement, ce n'est que le type par défaut qui le fait pas avoir un detailTextLabel.

0
DC2

Afin de le résoudre par programme:

let cell = UITableViewCell(style: .subtitle, reuseIdentifier: "identifier")
0
Lukas Mohs

Je l'ai utilisé et cela a fonctionné pour moi:

// programming mark ----- ----- ---- ----- ----- ---- ----- ----- ----

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let CellIdentifier: String = "CellIdentifier"

    var cell = tableView.dequeueReusableCellWithIdentifier(CellIdentifier) as? UITableViewCell

    if cell == nil {
        cell = UITableViewCell(style: UITableViewCellStyle.Value1, reuseIdentifier: CellIdentifier)
    }

    cell!.textLabel!.text = "Title"
    cell!.detailTextLabel!.text = "Value"

    return cell!
}
0
Vinod Joshi