Ich habe eine UITableView mit einer Zelle, die dynamisch an ein UITextView darin passt. Immer wenn ein Schlüssel eingegeben wird, überprüft die Zelle, ob die berechnete Höhe wie bei einem Zeilenumbruch zugenommen hat, so dass die Zelle die Höhe der Zelle neu berechnen muss. Ich mache das mit diesem Code.UITableView Scrollt nach oben bei Zellenaktualisierung
- (void) createNoteCellViewDidUpdate: (CreateNoteCell*) cell {
CGFloat newHeight = [self tableView:self.tableView heightForRowAtIndexPath:CreateNoteCellIndexPath];
if (newHeight != CGRectGetHeight(cell.contentView.frame)) {
[self.tableView beginUpdates];
[self.tableView endUpdates]; // <- HERE IS WHERE THE CONTENT OFFSET CHANGES
}
}
Die Größenänderung und Tabellengrenzen sind wie erwartet. Aber anstatt nur die Änderung der Höhe zu animieren, scrollt es auch nach oben. Dies ist hier zu sehen, wenn die Eingabetaste gedrückt wird.
von Key Value Observing, ich habe die Scroll-Ansicht Content, dass, wenn die Content Änderungen Scroll-Ansicht des eingestellt herausgefunden wird. Und das contentSize ändert sich oft, wenn die Methode endUpdates aufgerufen wird. Wenn es sich ändert, geht es von einer normalen Höhe zu einer ziemlich großen Höhe, dann zurück zu einer normalen Höhe. Ich frage mich, ob es darum geht. Ich weiß nicht, wo ich von hier aus hingehen soll.
Frage - warum versuchen Sie, Ihre Tabellenansicht zu skalieren, anstatt nur die Größe der Zelle zu ändern? Normalerweise bleibt der Rahmen einer Tabellenansicht konstant und ändert sich inhaltlich. – Frankie
Nein, ich berühre nicht den Rahmen oder die Grenzen der Tabellenansicht.Ich ändere die Größe der Zelle, indem ich der Tabellenansicht erzähle, alle Höhen der Zellen neu zu berechnen. – Jadar