滚动到顶部,状态栏点按

Rob*_*egg 3 objective-c uiscrollview ios

我已经查看了有关该主题的各种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;
Run Code Online (Sandbox Code Playgroud)

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

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

谁能告诉我这里缺少什么?

谢谢

Tay*_*yab 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];
    }
}
Run Code Online (Sandbox Code Playgroud)