如何在显示下一个 UIViewController 之前获取 UITableView 的最后一个滚动位置?
How to get UITableView last scroll position before show next UIViewController?
我有一个关于 UITableView
的问题。
因为我想在显示下一个 UIViewController
之前保存 UITableView
在我的 userdefault
中的最后一个位置 UIViewController
。
当我回到主页时,我可以读取用户默认值以自动滚动到我的保存位置。
为什么我会问这个问题,因为当我回到主页时我会刷新我的 viewcontroller
并且布局会改变,所以我无法在显示之前准确定位。
对我有什么想法吗?
谢谢
您可以使用 indexPathsForVisibleRows
获取第一个可见单元格的索引路径并存储它。然后,当您再次显示 table 时,您可以使用 scrollToRowAtIndexPath:atScrollPosition:animated:
来确保该单元格可见。
通过使用 contentOffset
.
离开时保存:
float savedVerticalContentOffset = tableView.contentOffset.y;
然后当你 return 刷新时调用:
[tableView setContentOffset:CGPointMake(0, savedVerticalContentOffset)];
我有一个关于 UITableView
的问题。
因为我想在显示下一个 UIViewController
之前保存 UITableView
在我的 userdefault
中的最后一个位置 UIViewController
。
当我回到主页时,我可以读取用户默认值以自动滚动到我的保存位置。
为什么我会问这个问题,因为当我回到主页时我会刷新我的 viewcontroller
并且布局会改变,所以我无法在显示之前准确定位。
对我有什么想法吗?
谢谢
您可以使用 indexPathsForVisibleRows
获取第一个可见单元格的索引路径并存储它。然后,当您再次显示 table 时,您可以使用 scrollToRowAtIndexPath:atScrollPosition:animated:
来确保该单元格可见。
通过使用 contentOffset
.
离开时保存:
float savedVerticalContentOffset = tableView.contentOffset.y;
然后当你 return 刷新时调用:
[tableView setContentOffset:CGPointMake(0, savedVerticalContentOffset)];