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.
-
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). DienumberOfLines
wird ignoriert; ich sehe entweder 1 oder 2 Zeilen, aber nicht mehr. -
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?