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?以避免重复使用!