点击状态栏不会将表格视图滚动到顶部

Posted

技术标签:

【中文标题】点击状态栏不会将表格视图滚动到顶部【英文标题】:Tapping status bar doesn't scroll table view to top 【发布时间】:2014-08-26 02:01:18 【问题描述】:

好的,我已经阅读了几乎所有关于这个问题的帖子,他们都说同样的话:

在整个视图层次结构中,只有一个滚动视图(或子类)应将scrollsToTop 设置为YES,其余应设置为NO。当我的视图加载时,我递归地迭代整个视图层次结构,就像许多答案所建议的那样,将scrollsToTop 设置为NO,然后我只将我的表视图的scrollsToTop 设置为YES,但它仍然不会滚动当我点击状态栏时。我已经覆盖了:

-(BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView
    return YES;

但即使我的视图控制器是我的表格视图的滚动视图委托,它也没有被调用。

我确实有带有文本视图的单元格,当容器单元格从 nib 唤醒时,我也立即将它们的 scrollsToTop 属性设置为 NO,并且没有其他来自滚动视图的视图。

为什么它不起作用?

【问题讨论】:

【参考方案1】:

不管怎样,我从来没有在我用过的任何表格视图控制器上设置 scrollsToTop,而且它们都默认这样做。也许所有这些递归视图层次结构的东西实际上是导致问题的原因。我只是查看了我编写的所有应用程序,所有应用程序都可以正常工作,而无需触摸 scrollsToTop,其中许多都嵌入了 scrollViews/textViews/etc。也许尝试注释掉所有 scrollsToTop 代码并尝试它?

否则,您将如何构建此 tableview?是带笔尖的还是普通的 UITableViewController?

【讨论】:

最初根本没有scrollsToTop 代码。但它不起作用,这就是我尝试设置scrollsToTop 的原因。表格视图位于常规 uiviewcontroller 内。 或许您可以尝试使用普通的 UITableViewController? 我不能。我在视图控制器中有很多自定义控件。 啊.. 我想一个潜在的黑客是在状态栏的顶部放置一个点击手势识别器? 是的,这可以作为最后的手段。但这太 hacky,我更喜欢更“认可”的方法。

以上是关于点击状态栏不会将表格视图滚动到顶部的主要内容,如果未能解决你的问题,请参考以下文章

通过点击状态栏滚动到顶部 TableView 不起作用(有许多子视图)SWIFT

点击标签栏时将表格视图滚动到顶部

如何在 iOS 11 中像点击状态栏一样调用缓慢滚动到顶部的动画?

(iOS,Xcode)有没有办法覆盖“点击状态栏向上滚动”行为?

Phonegap:在状态栏点击顶部滚动

将“标签状态栏滚动到顶部”添加到 UIScrollView 中包含的 UITableView