【问题标题】:UITableView setContentOffSet is causing unwanted scrolling to the topUITableView setContentOffSet 导致不必要的滚动到顶部
【发布时间】:2014-09-17 12:42:50
【问题描述】:

当我的视图加载从 api 获取数据时,我正在模拟拉动刷新。

[refreshControl beginRefreshing];
CGPoint newOffset = CGPointMake(0, -refreshControl.frame.size.height);
[tableView setContentOffset:newOffset animated:YES];

当数据返回时,它会停止刷新控制,重新加载 tableview 并

 [refreshControl endRefreshing];   
 [_postsTableView setContentOffset:CGPointZero animated:YES];

如果在表格视图的顶部很好,但如果在中间或底部,它会滚动到顶部,这是不受欢迎的。

【问题讨论】:

  • 拉动刷新将自动调整,无需为此设置内容偏移。使用 SVPullToRefresh 改善您的拉动刷新体验
  • “重新加载tableview”如何?
  • 您可以使用此 [tableview reload] 或者您可以通过在特定索引路径处插入行来添加从服务器加载的更多值。这将产生良好的动画效果。如果您修复了任何时候只有 10 行会显示在 tableview 中,那么使用 [tableview reload]

标签: ios objective-c uitableview uiscrollview uirefreshcontrol


【解决方案1】:

看起来您可以将其包装起来以避免不良行为:

if (_postsTableView.contentOffset.y < 0) {
    [_postsTableView setContentOffset:CGPointZero animated:YES];
}

【讨论】:

  • 像你这样的人让世界旋转起来。惊人的!完美!
  • 对不起,我还没有足够的代表点来支持这个。 :( 但真的很感激
猜你喜欢
  • 2015-06-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-18
  • 2015-10-04
  • 2018-11-02
  • 1970-01-01
  • 2021-07-11
  • 1970-01-01
相关资源
最近更新 更多