无法让scrolllsToTop在iOS7上运行

dji*_*i33 24 iphone objective-c uitableview uistatusbar ios7

我在我的最新应用程序中瞄准iOS7,并且点击状态栏似乎不会将tableView或collectionView滚动到顶部.

我已经设定self.tableView.scrollsToTop = true,但仍然没有任何反应.

我知道Apple显着改变了iOS7中的状态栏,但这些更改是否会破坏scrollsToTop功能?

更新

为了回应其中一个答案中的评论,我测试了以确保我的集合视图确实是屏幕上唯一的scrollView,它是:

(lldb) po [self.view recursiveDescription]
<UIView: 0x1092ddf0; frame = (0 0; 320 568); autoresize = W+H; layer = <CALayer: 0x109357e0>>
   | <UICollectionView: 0x11351800; frame = (0 0; 320 568); clipsToBounds = YES; opaque = NO; autoresize = W+H; gestureRecognizers = <NSArray: 0x10966080>; layer = <CALayer: 0x109623a0>; contentOffset: {0, -64}> collection view layout: <UICollectionViewFlowLayout: 0x10940a70>
   |    | <UIImageView: 0x10965fa0; frame = (0 564.5; 320 3.5); alpha = 0; opaque = NO; autoresize = TM; userInteractionEnabled = NO; layer = <CALayer: 0x10965ee0>> - (null)
   |    | <UIImageView: 0x10948f60; frame = (316.5 561; 3.5 7); alpha = 0; opaque = NO; autoresize = LM; userInteractionEnabled = NO; layer = <CALayer: 0x10966030>> - (null)
Run Code Online (Sandbox Code Playgroud)

更新#2

不确定它是否重要,但我使用的是标准的iOS7 NavigationController,其中navigationBar是透明的,并且当我们在下面滚动时将模糊应用到我的集合/ tableViews.

更新#3

弄清楚了.结果我在屏幕上确实有多个scrollView.我的应用程序在应用程序的主要部分下面有一个左抽屉菜单,该菜单有一个tableView用于选项.我只是设置self.menuTable.scrollsToTop = false,一切都在应用程序的其余部分按预期工作.没有必要实现scrollView Delegate方法或任何东西.

Gre*_*reg 23

您在屏幕上有多个滚动视图/表格视图/集合视图吗?如果是这样,只有其中一个可以scrollsToTop设置为YES,否则iOS7将不会将它们中的任何一个滚动到顶部.

scrollViewShouldScrollToTop:如果传入的滚动视图等于要滚动到顶部的滚动视图,则还可以实现UIScrollViewDelegate方法并返回YES:

- (BOOL) scrollViewShouldScrollToTop:(UIScrollView*) scrollView {
    if (scrollView == self.myTableView) {
        return YES;
    } else {
        return NO;
    }
}
Run Code Online (Sandbox Code Playgroud)


dji*_*i33 11

简短的回答是iOS7没有什么不同.只要加载的UIScrollView不超过一个,当用户点击状态栏时,tableView或collectionView将滚动到顶部.这里的关键是加载; 另一个scrollView不一定必须在屏幕上与另一个scrollView冲突.

左/右滑动抽屉这些天很受欢迎,这就是我的问题所在.我有一个包含我的导航选项的菜单,这些都是由UITableView持有的.我必须确保menuTable.scrollsToTop = false在我能够在我的应用程序的其他部分工作之前设置.


Jef*_*Sun 7

我的问题是,我有一个UITextViewscrollsToTop设置为YES,所以我UITableView并没有回应的姿态.简而言之,请检查所有其他可滚动视图.