当前位置: 首页 > 知识库问答 >
问题:

如何在IOS7 UITableView中滚动到顶部?

白学
2023-03-14

在IOS6中,我有以下代码滚动到UITableView的顶部

[tableView setContentOffset:CGPointZero animated:YES];

在IOS7中,这不再起作用了。表格视图没有完全滚动到顶部(但几乎)。

共有3个答案

郑理
2023-03-14

基于@Markus Johansson的公认答案,以下是Swift代码版本:

func scrollToTop() {
    if (self.tableView.numberOfSections > 0 ) {
        let top = NSIndexPath(row: Foundation.NSNotFound, section: 0)
        self.tableView.scrollToRow(at: top as IndexPath, at: .top, animated: true);
    }
}
仉明知
2023-03-14

试试这个:

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:YES];
洪琦
2023-03-14

在iOS7中,默认情况下,全屏幕UITableView和UIScrollView组件会调整内容和滚动指示器插入,以使一切正常工作。但是,正如您所注意到的,CGPointZero不再表示将您带到可视“顶部”的内容偏移量。

改用这个:

self.tableView.contentOffset = CGPointMake(0, 0 - self.tableView.contentInset.top);

在这里,您不必担心是否有节或行。您也没有告诉表视图以第一行为目标,然后想知道为什么它没有显示所有非常高的表头视图,等等。

 类似资料:
  • 我在onLoad上使用下面的代码进入页面顶部。window.scroll到(0,0)在Javascript中,它适用于浏览器,但不适用于任何移动设备。

  • 我正在使用AngularJS开发一个小型web应用程序,遇到了一个问题。我正在使用填充div内部的列表。div有一个固定的高度,并设置为,这意味着当列表对于div来说太大时会出现一个滚动条。我的问题是,当重新绘制列表时,即支持ng repeat的数据会发生变化,滚动条不会重置为div的顶部。相反,它会保持在ng repeat更改之前滚动条所在的任何位置。这是一个非常糟糕的用户体验。我尝试了以下方法

  • 问题内容: 这是我的onCreate,它处理适配器,LinearLayoutManager等。我尝试了每个选项以尝试将其滚动到顶部,但不能。我什至尝试创建自己的自定义LinearLayoutManager。 问题答案: 您尝试过还是? RecyclerView不会在其中实现任何滚动逻辑,而是更加具体,它会根据实现的布局转到特定的索引,在您的情况下是线性的。

  • 问题内容: 我想创建一个div,它位于内容块的下方,但是一旦页面滚动到足以接触其顶部边界的位置,它就会固定在适当的位置并随页面滚动。 问题答案: 您可以简单地使用css,将元素定位为fixed: 编辑: 您应该将元素的位置设为绝对,一旦滚动偏移量到达该元素,则应将其更改为fixed,并将顶部位置设置为零。 您可以使用scrollTop函数检测文档的顶部滚动偏移量: 当滚动偏移量达到200时,该元素

  • 问题内容: 有没有一种方法可以使用JavaScript / jQuery控制浏览器滚动? 当我向下滚动页面一半,然后触发重新加载时,我希望页面进入顶部,但它会尝试找到最后一个滚动位置。所以我这样做: 但是没有运气。 编辑 : 因此,当页面加载后,我打电话给您时,您的两个答案都有效。但是,如果我只是在页面上刷新,则看起来浏览器会在事件发生后计算并滚动到其旧的滚动位置(我也测试了body onload

  • 问题内容: 我有一个问题,我不知道如何解决。在我的react组件中,我在底部显示一长串数据和少量链接。单击任何此链接后,我将在列表中添加新的链接集合,并需要滚动到顶部。 问题是- 呈现新集合 后 如何滚动到顶部? 问题答案: 由于原始解决方案是为 react的 早期版本提供的,因此这里进行了更新: