Ios ScrollView滚动至顶部动画YES donds';不动

Ios ScrollView滚动至顶部动画YES donds';不动,ios,xcode,animation,Ios,Xcode,Animation,这是我的第一篇帖子,因为我通常会找到关于堆栈溢出的所有答案,但这次不是 我有个小问题 我使用以下方法: -(void)scrollToTop; { [_scrollView setContentOffset:CGPointZero animated:YES]; } 有时它有生气,有时没有 这一个有效: -(void)newPage:(NSString*)href { if(!(_pageNumber == href.integerValue)) {

这是我的第一篇帖子,因为我通常会找到关于堆栈溢出的所有答案,但这次不是

我有个小问题

我使用以下方法:

    -(void)scrollToTop;
{
    [_scrollView setContentOffset:CGPointZero animated:YES];
}
有时它有生气,有时没有

这一个有效:

-(void)newPage:(NSString*)href
{

    if(!(_pageNumber == href.integerValue))
    {
        __weak id weakSelf = self;

        [(PageViewController*)_preLoadPages[href] setPageMinHeight:_actualPage.height];

        NSMutableArray *viewControllers = [[NSMutableArray alloc] init];
        viewControllers[0] = _preLoadPages[href];
        [self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:^(BOOL finished){

            [weakSelf afterLinkClicked:href];

        }];

        _pageNumber = href.integerValue;
    }
}
- (void)afterLinkClicked:(NSString*)href
{
    _pageNumber = href.integerValue;

    [_preLoadPages[href] setPageMinHeight:0];
    _actualPage = _preLoadPages[href];
    [_preLoadPages removeAllObjects];
    [self updateScrollView];
    [self scrollToTop];

    [self parsePage];
}
然而,这一条没有:

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{

    CGPoint test = [gestureRecognizer locationInView:gestureRecognizer.view];
    if(test.x>=742)
    {
        if(_preLoadPages[@"next"]!=nil)
        {
            __weak id weakSelf = self;

            [(PageViewController*)_preLoadPages[@"next"] setPageMinHeight:_actualPage.height];

            NSMutableArray *viewControllers = [[NSMutableArray alloc] init];
            viewControllers[0] = _preLoadPages[@"next"];
            [self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:^(BOOL finished){

                [weakSelf afterAnimationCompleted];

            }];
        }
    }

    return YES;
}
- (void)afterAnimationCompleted
{
    _pageNumber++;
    [_preLoadPages[@"next"] setPageMinHeight:0];
    _actualPage = _preLoadPages[@"next"];
    [_preLoadPages removeAllObjects];
    [self updateScrollView];
    [self scrollToTop];

    [self parsePage];
}
这两个电话几乎没有区别!
我已尝试使用performSelector:withObject:withDelay:0,但它不起作用

我正在动画之前调整scollView的大小,这就是为什么…为什么要使用weakself??为什么不使用self?以避免重复使用!