In meiner Tabellenansicht muss ich nach oben blättern. Aber ich kann nicht garantieren, dass das erste Objekt Abschnitt 0, Zeile 0 sein wird. Es kann sein, dass meine Tabellenansicht mit Abschnitt Nummer 5 beginnt.
Ich erhalte also eine Ausnahme, wenn ich aufrufe:
[mainTableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:NO];
Gibt es eine andere Möglichkeit, in der Tabellenansicht nach oben zu blättern?
UITableView ist eine Unterklasse von UIScrollView, so dass Sie auch verwenden können:
[mainTableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:YES];
Oder
[mainTableView setContentOffset:CGPointZero animated:YES];
Und in Swift:
mainTableView.setContentOffset(CGPointZero, animated:true)
Und in Swift 3 & oben:
mainTableView.setContentOffset(.zero, animated: true)
Hinweis: Diese Antwort ist nicht gültig für iOS 11 und später.
Ich bevorzuge
[mainTableView setContentOffset:CGPointZero animated:YES];
Wenn Sie einen oberen Einschub in Ihrer Tabellenansicht haben, müssen Sie ihn abziehen:
[mainTableView setContentOffset:CGPointMake(0.0f, -mainTableView.contentInset.top) animated:YES];
Mit diesem Code können Sie einen bestimmten Abschnitt nach oben scrollen
CGRect cellRect = [tableinstance rectForSection:section];
CGPoint origin = [tableinstacne convertPoint:cellRect.origin
fromView:<tableistance>];
[tableinstance setContentOffset:CGPointMake(0, origin.y)];