Ios5 编程生成的滚动完成后将调用哪个UIScrollview委托方法

Ios5 编程生成的滚动完成后将调用哪个UIScrollview委托方法,ios5,uiscrollview,scroll,uiscrollviewdelegate,Ios5,Uiscrollview,Scroll,Uiscrollviewdelegate,我需要一些帮助,我真的需要知道在我执行一些编程生成的滚动之后将调用什么UIScrollView委托方法。从link,我知道我必须尝试实现 -(无效)ScrollViewDiEndScrollingAnimation:(UIScrollView*)scrollView 但是在我实现它之后,从NSlog中,我知道当scrollview已经完成时没有调用这个方法,NSlog显示在调用这个委托方法之后,应用程序调用了 - (void)scrollViewDidScroll:(UIScrollView

我需要一些帮助,我真的需要知道在我执行一些编程生成的滚动之后将调用什么UIScrollView委托方法。从link,我知道我必须尝试实现


-(无效)ScrollViewDiEndScrollingAnimation:(UIScrollView*)scrollView

但是在我实现它之后,从NSlog中,我知道当scrollview已经完成时没有调用这个方法,NSlog显示在调用这个委托方法之后,应用程序调用了

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
然后再次调用ScrollViewDiEndScrollingAnimation,多次返回scrollViewDidScroll,直到滚动真正停止,我需要在执行编程生成的滚动之前将BOOL值设置为True,并在滚动真正停止后将其设置为False。有人能帮我解决这个问题吗

这是我的示例代码,要执行此操作:

BOOL isScroll;

- (void)viewDidLoad {
    isScroll = YES;
    [self generateScrollProgrammatically];
}

- (void) generateScrollProgrammatically{
    //i do some code for scrolling uiscrollview programmatically
}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
    NSLog(@"scrollViewDidScroll");

    if (isScroll){
        //do something
    }

}

- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView{
    NSLog(@"scrollViewDidEndScrollingAnimation");
}
这里是nslog,我被告知:

2012-05-31 09:58:10.583 myApps[1203:fb03] scrollViewDidScroll
2012-05-31 09:58:10.584 myApps[1203:fb03] scrollViewDidScroll
2012-05-31 09:58:10.595 myApps[1203:fb03] scrollViewDidScroll
2012-05-31 09:58:10.596 myApps[1203:fb03] scrollViewDidScroll
2012-05-31 09:58:10.597 myApps[1203:fb03] scrollViewDidScroll
2012-05-31 09:58:10.598 myApps[1203:fb03] scrollViewDidScroll
2012-05-31 09:58:10.611 myApps[1203:fb03] scrollViewDidScroll
2012-05-31 09:58:10.615 myApps[1203:fb03] scrollViewDidScroll
2012-05-31 09:58:10.616 myApps[1203:fb03] scrollViewDidScroll
2012-05-31 09:58:10.617 myApps[1203:fb03] scrollViewDidEndScrollingAnimation
2012-05-31 09:58:10.631 myApps[1203:fb03] scrollViewDidScroll
2012-05-31 09:58:10.632 myApps[1203:fb03] scrollViewDidScroll
2012-05-31 09:58:10.633 myApps[1203:fb03] scrollViewDidEndScrollingAnimation
2012-05-31 09:58:10.634 myApps[1203:fb03] scrollViewDidScroll
2012-05-31 09:58:10.635 myApps[1203:fb03] scrollViewDidScroll
2012-05-31 09:58:10.636 myApps[1203:fb03] scrollViewDidEndScrollingAnimation
2012-05-31 09:58:10.636 myApps[1203:fb03] scrollViewDidScroll
2012-05-31 09:58:10.637 myApps[1203:fb03] scrollViewDidScroll
2012-05-31 09:58:10.638 myApps[1203:fb03] scrollViewDidEndScrollingAnimation
2012-05-31 09:58:10.640 myApps[1203:fb03] scrollViewDidScroll
2012-05-31 09:58:10.642 myApps[1203:fb03] scrollViewDidScroll
2012-05-31 09:58:10.644 myApps[1203:fb03] scrollViewDidEndScrollingAnimation
2012-05-31 09:58:10.644 myApps[1203:fb03] scrollViewDidScroll
2012-05-31 09:58:10.645 myApps[1203:fb03] scrollViewDidScroll
2012-05-31 09:58:10.646 myApps[1203:fb03] scrollViewDidEndScrollingAnimation

是的,这也咬了我一口。我能找到的唯一办法是替换:

[scrollView setContentOffset:offset animated:YES];
与:


-(void)ScrollViewDiEndDecelling:(UIScrollView*)scrollView使用此委托method@iHungry它不起作用,因为我是以编程方式生成滚动的,没有触摸它ScrollView,你用什么方法替换它?用什么方法你都在做你最初描述为“某个编程生成的滚动”。以上代码假定您正在使用-setContentOffset:animated:。是吗?不,我不使用它,但我想我知道我的代码有什么问题:)谢谢你的回答:)@R.Dewi请分享你认为是你的解决方案
[UIView animateWithDuration:[[UIApplication sharedApplication] statusBarAnimationDuration]
                 animations:^{ scrollView.contentOffset = offset; }
                 completion:^{ [scrollView.delegate scrollViewDidEndScrollingAnimation:scrollView]; }];