ios - 在导航 Controller 中导航时如何保持滚动位置?

标签 ios uiscrollview uinavigationcontroller

一直在四处寻找,但我还没有找到对我有帮助的答案。我想知道当我在导航 Controller 中前后移动时如何保持 ScrollView 中的滚动位置。目前,当我转到导航 Controller 中的另一个 View 时, ScrollView 会重置并在我返回时位于顶部。任何代码将不胜感激。对不起,如果我的解释不够好。到目前为止,这就是我所拥有的,我知道这行不通,但我该怎么办?

- (void)viewWillAppear:(BOOL)animated {
    scrollView.contentOffset.y = scrollSave;
    [super viewWillAppear:YES];
}

- (void)viewWillDisappear:(BOOL)animated {
    CGFloat scrollSave = scrollView.contentOffset.y;
    [super viewWillDisappear:animated];
}

最佳答案

您上面的代码甚至不应该编译。您可以将此滚动位置保存在另一个变量中,但通常滚动位置无论如何都不应该自行重置。您应该完全删除任何试图操纵内容偏移量的代码,并查看它是否在返回 View 时将其恢复到正确的滚动位置。

关于ios - 在导航 Controller 中导航时如何保持滚动位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20910271/

相关文章:

ios - 升级应用程序以支持ios5

ios - UIScrollView 放大弹跳

ios - 导航栏现在显示使用协调器导航

iphone - 以编程方式构建/导航导航 Controller

ios - 在 iOS 中创建选项卡按钮

ios - NSURLSession.sharedSession().dataTaskWithRequest(request) 除非出现错误,否则不会返回任何内容

ios - 在 View 之外的单元格中重新加载 UITableview 数据

ios - 如何使用 Autolayout 对我的 UIScrollview 设置约束?

ios - UIScrollView 以编程方式滚动

iphone - 如何在 iPhone 中使用移动和缩放 UIImagePickerController?