重新加载 tableview 后保留 contentOffset 是一种方法吗?
Is it a way to keep contentOffset after reloading tableview?
我需要重新加载 tableview,但不知何故我想保持滚动位置。有什么办法吗?也许存储内容偏移并在 viewDidLayoutSubviews
我应该重置它?
在使用 reloadData(使用 animation:NO)之前调用 scrollToRowAtIndexPath:atScrollPosition:animated:
此外,请小心以防更新后的表格视图中的单元格较少,以防止崩溃。
希望对您有所帮助
重新加载 table 视图后,您需要调用 TableView 的方法 scrollToRowAtIndexPath:atScrollPosition:animated
:
只需提供索引路径,滚动位置可以是以下之一
UITableViewScrollPositionNone,
UITableViewScrollPositionTop,
UITableViewScrollPositionMiddle,
UITableViewScrollPositionBottom
和动画参数中的 YES/NO。
TableView 不重置滚动位置。即使在调用 reloadData 函数后,它也会保持内容偏移量。因此,如果您想保持像素位置,则无需执行任何操作。
如果您在重新加载数据或更改数据源时更改行高,则可以使用 scrollToRowAtIndexPath:atScrollPosition:animated:
方法。
您可以在重新加载之前保存您当前的偏移量 table 使用此方法保存您当前的偏移量
self.tableView.contentOffset.y
或者你可以像这样重新加载它会从你当前的偏移量重新加载你的table
试试这个:
[UIView animateWithDuration:0.1 delay:0 options:0 animations:^{
self.tableView.contentOffset = CGPointMake(0, currentOffset);
} completion:^(BOOL finished) {
[self.tableView reloadData];
}];
我需要重新加载 tableview,但不知何故我想保持滚动位置。有什么办法吗?也许存储内容偏移并在 viewDidLayoutSubviews
我应该重置它?
在使用 reloadData(使用 animation:NO)之前调用 scrollToRowAtIndexPath:atScrollPosition:animated:
此外,请小心以防更新后的表格视图中的单元格较少,以防止崩溃。
希望对您有所帮助
重新加载 table 视图后,您需要调用 TableView 的方法 scrollToRowAtIndexPath:atScrollPosition:animated
:
只需提供索引路径,滚动位置可以是以下之一
UITableViewScrollPositionNone,
UITableViewScrollPositionTop,
UITableViewScrollPositionMiddle,
UITableViewScrollPositionBottom
和动画参数中的 YES/NO。
TableView 不重置滚动位置。即使在调用 reloadData 函数后,它也会保持内容偏移量。因此,如果您想保持像素位置,则无需执行任何操作。
如果您在重新加载数据或更改数据源时更改行高,则可以使用 scrollToRowAtIndexPath:atScrollPosition:animated:
方法。
您可以在重新加载之前保存您当前的偏移量 table 使用此方法保存您当前的偏移量
self.tableView.contentOffset.y
或者你可以像这样重新加载它会从你当前的偏移量重新加载你的table 试试这个:
[UIView animateWithDuration:0.1 delay:0 options:0 animations:^{
self.tableView.contentOffset = CGPointMake(0, currentOffset);
} completion:^(BOOL finished) {
[self.tableView reloadData];
}];