UITableViewCell mit langem Text

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • UITableViewCell mit langem Text

    Hello Leute!

    Ich versuche gerade, einer UITableViewCell die Breite des detailTextLabel zu entlocken.
    Dann möchte auch die Breite meines strings feststellen, um dann letzten Endes zu wissen, ob der Text zu lang ist.
    Der Hintergrund ist, dass ich gerne für zu lange Texte einen accessory type anhängen und die Zelle klickbar machen.

    Hier mal mein erster Ansatz:

    Quellcode

    1. SLog(@"\nlabel width:\t%f\nstring width:\t%f\n************************", cell.detailTextLabel.frame.size.width, [cell.detailTextLabel.text sizeWithFont:cell.detailTextLabel.font].width);
    2. if (cell.detailTextLabel.frame.size.width > [cell.detailTextLabel.text sizeWithFont:cell.detailTextLabel.font].width) {
    3. [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];
    4. }


    Dabei kommt leider raus, dass sowohl das Textlabel, als auch der Text selber (man glaubt es kaum) 0.00000 lang ist…


    Hat jemand von euch vielleicht 'ne Idee, wie ich das Problem lösen könnte?
    Merci, liebe Grüße
    ...
  • Mac & i Test Abo
  • Also. Hat weder mit -setNeedsLayout, noch mit -setNeedsDisplay geklappt.

    Aber HEY! Der Tipp mit -layoutSubviews war super!
    Ich hab das einfach mal auf gut Glück auf der Zelle ausgeführt, kurz vor meinem Code.
    Und siehe da! Ich bekomme werte und kann super meinen UITableViewCellAccessoryDisclosureIndicator anzeigen!

    SUPER!! DANKE!

    Und um meinen Code noch mal zu verbessern (if-Bedingungen sind ja da falsch herum…):

    Quellcode

    1. if ([cell.detailTextLabel.text sizeWithFont:cell.detailTextLabel.font].width > cell.detailTextLabel.frame.size.width) {
    2. [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];
    3. }