【问题标题】:UITableView how to continue scrolling after reloadUITableView如何在重新加载后继续滚动
【发布时间】:2015-11-24 12:22:51
【问题描述】:

我的应用程序中有一个 UITableView。当表格几乎滚动到最后时,我下载更多数据并重新加载表格。

如果 tableView 正在滚动,则在我调用 [tableView reloadData]; 时滚动停止。如何在reloadData的同时实现不停止滚动的效果?我想我需要以某种方式保存滚动速度然后恢复它,但是该怎么做呢?

P.D.我真的在提问之前搜索了这个问题。

【问题讨论】:

  • 您的代码使用哪种语言?提示:不要在您的问题中添加不相关的标签。这让寻找类似问题答案的人变得更加困难。编辑:我看到你给出了一个 Objective-C 的例子。我会同意的。
  • 我认为这是不可能的。不幸的是。
  • 当我创建这个问题时,我将objective-c / swift都添加到标签中。我真的不在乎,我可以使用它们中的任何一个。
  • 您是否尝试使用 insertRowsAtIndexPaths 添加行而不是重新加载整个 tableview?
  • 其实我没有,我会努力告诉你的,谢谢你的建议。

标签: ios objective-c swift uitableview scroll


【解决方案1】:

我的意思是,this method (insertRowsAtIndexPaths:withRowAnimation:) 是关键。

在 SO:the use casethe tip 上有一个用例和一个不错的提示。

【讨论】:

    【解决方案2】:

    由于UITableViewUIScrollView 的子类,您可以使用UIScrollViewDelegatescrollViewWillEndDragging:withVelocity:targetContentOffset: 方法来确定它应该滚动多远,然后在表重新加载调用setContentOffset:animated: 之后使用该目标偏移量(或表视图的开始/结束,如果它变小)来模拟持续滚动 编辑:由于您的targetContentOffset 可能是CGRectZero,您将不得不使用相同方法的速度以某种方式重新计算它

    【讨论】:

    • 我会试试这个并告诉你。
    • @Borzh 你在这个上成功了吗?
    • 我没有解决这个问题。
    【解决方案3】:

    如果我没记错的话,你正在寻找一个函数调用延迟加载。我可以推荐你搜索 SVPullToRefresh here!

    【讨论】:

    • 感谢您的提示,但我已经在使用它,我希望表格加载更快
    猜你喜欢
    • 1970-01-01
    • 2011-10-22
    • 2014-08-06
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2016-10-03
    • 2019-11-26
    • 1970-01-01
    相关资源
    最近更新 更多