点击状态栏不会将表格视图滚动到顶部
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 中像点击状态栏一样调用缓慢滚动到顶部的动画?