Ich verwende iPhone SDK 3.1.3. Ich habe eine UITableViewController
, die Daten von einem anderen Controller bekommt. Die Tabellenansicht wird als Unteransicht zur Hauptansicht hinzugefügt, aber der Rahmen wird so eingestellt, dass er nicht sichtbar ist. Der Tabellenansichtsrahmen wird aktualisiert und über die Hauptansicht verschoben, indem Sie auf eine Schaltfläche tippen.UITableView Scrollen zu einer bestimmten Position
Die Tabellenansicht erscheint und ich scrolle zur letzten Zeile. Wenn ich die letzte Zeile auswähle, lade ich die Tabelle mit mehr Daten neu. Die Tabelle wird mit mehr Daten aktualisiert. Alles funktioniert gut, außer die Scroll-Position ist immer oben.
Ich brauche die Scroll-Position als letzte Zeile, auf die ich geklickt habe, um mehr Daten zu laden. Ich speichere die Bildlaufposition und rufe nach dem Laden weiterer Daten den folgenden Code auf. Es wird ohne Probleme ausgeführt, aber die Scroll-Position ist immer die oberste.
[theTableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:savedScrollPosition inSection:0] atScrollPosition:savedScrollPosition animated:NO];
Das oben genannte scheint keine Wirkung zu haben. ViewWillAppear:
ViewDidAppear:
feuert nicht und mir wird gesagt, dass, wenn der View-Controller in Code instanziiert ist, was der Fall ist, diese nicht feuern. Bitte helfen Sie mir herauszufinden, wie und wann die Scroll-Position nach dem Laden der Tabelle ([theTableView reloadData]
) so eingestellt werden soll, dass es in der Zeile ist, auf die ich geklickt habe.
-Code zur Tabellenansicht & scroll
////performAction will notify the tableviewcontroller which will result in didPerformAction being called
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row == lastRow)
{
savedScrollPosition = lastRow;
//perform the action
[controller performAction];
}
}
- (void) didPerformAction:(NSNotification *)obj
{
[theTableView reloadData];
[theTableView
scrollToRowAtIndexPath: [NSIndexPath indexPathForRow:savedScrollPosition inSection:0]
atScrollPosition:UITableViewScrollPositionBottom
animated:NO];
}
Was ist SavedScrollPosition in dieser Anweisung –