6 Stimmen

Was ist der beste Weg, um eine mehrzeilige UITableCell mit variabler Größe zu implementieren?

Ich versuche, eine Tabelle voller Twitter-Status anzuzeigen (ja, das ist die Stanford-Präsenz 2 Zuweisung), die in ihrer Größe variieren. Ich kann die geeignete Höhe für meine Zeilen relativ einfach mit einem Code bestimmen, der eine Annäherung darstellt (von Begleitende Vorlesung 9 ):

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *) indexPath
{
    NSString *text = ...;
    UIFont *font = [UIFont systemFontOfSize:...];
    CGSize withinSize = CGSizeMake(tableView.width, 1000];
    CGSize size = [text sizeWithFont:font constrainedToSize:withinSize lineBreakMode:UILineBreakModeWordWrap];

    return size.height + somePadding;
}

Ich habe zwei Ansätze versucht (und einige Änderungen an beiden), um ein mehrzeiliges Textfeld mit Wortumbruch in meine Tabellenzeile zu bekommen.

  1. Fügen Sie ein UILabel als Unteransicht zu meiner benutzerdefinierten UITableCell-Unterklasse hinzu, und legen Sie die numberOfLines entweder auf eine berechnete Zahl, die auf der obigen Höhe basiert (z. B. 6), oder auf 0 (theoretisch unbegrenzt). Die numberOfLines wird ignoriert; ich sehe entweder 1 oder 2 Zeilen, aber nicht mehr.

  2. Hinzufügen einer schreibgeschützten UITextView als Unteransicht. Dies hat das Problem, dass die UITextView meine scrolling frisst; Ich am Ende scrollen innerhalb einer UITextView Zeile statt reibungslos von Zeile zu Zeile zu bewegen. Wenn ich den Bildlauf in der UITextView deaktiviere, kann ich am Ende überhaupt nicht mehr blättern.

Das ist eine ziemlich häufige Aufgabe; wie kann man das am besten bewerkstelligen?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X