滚动到顶部,状态栏点按

时间:2014-06-23 11:06:48

标签: ios objective-c uiscrollview

我已经查看了有关该主题的各种SO问题,但我还没有找到解决方案。我有UIViewController UITableViewUICollectionView。当用户点击它时,我希望UICollectionView滚动到顶部。

文档说如果你有多个UiScrollView子类 - 你需要将它们设置为no并且你想要滚动到顶部的UiScrollView为yes。

所以我写了这段代码来浏览我的所有观点:

for (UIScrollView *view in self.view.subviews) {
                    if ([view isKindOfClass:[UIScrollView class]]) {
                        view.scrollsToTop = NO;
                    }
                }

                self.collectionView.scrollsToTop = YES;

这样我确定UiScrollView的任何子类都将它的scrollsToTop属性设置为no。

但是,点击状态栏不会执行任何操作。

有人可以告诉我这里缺少什么吗?

谢谢

1 个答案:

答案 0 :(得分:9)

您似乎只是在遍历主视图的子视图。您的UITableView可能嵌套在另一个视图中。尝试执行以下操作;

//in view did load
[self setScrollToTopFalse:self.view];
self.collectionView.scrollsToTop = YES;

-(void)setScrollToTopFalse:(UIView *)v
{
    for (UIView * v1 in [v subviews]) {
        if ([[v1 class]isSubclassOfClass:[UIScrollView class]]) {
            ((UIScrollView *)v1).scrollsToTop = NO;
        }
        [self setScrollToTopFalse:v1];
    }
}