ScrollView滚动到顶部Animted YES不动画

时间:2013-03-07 12:16:14

标签: ios xcode animation

这是我的第一篇文章,因为我通常会在堆栈溢出时找到所有答案但不是这次!

我有点问题。

我使用以下方法:

    -(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但它也不起作用!!

0 个答案:

没有答案