Ios UIScrollView和UIPageControl之间发生冲突的事件

Ios UIScrollView和UIPageControl之间发生冲突的事件,ios,uiscrollview,Ios,Uiscrollview,它看起来很好,也能跑得很好。 但我的问题是,当我单击pageControl时,它的currentNumber更改,然后pageScroll转到currentNumber,currentNumber将快速转到最后一个,然后再返回。我知道原因,但我不知道如何解决这个问题 例如: currentNumber=1 当我点击右键部分时,currentNumber=2->滚动开始移动->1->移动一半以上->2 当然,时间很短。 如何解决 我是这样解决的: 首先,当寻呼机点击时,我将bool指示器设置为:

它看起来很好,也能跑得很好。 但我的问题是,当我单击pageControl时,它的currentNumber更改,然后pageScroll转到currentNumber,currentNumber将快速转到最后一个,然后再返回。我知道原因,但我不知道如何解决这个问题

例如: currentNumber=1
当我点击右键部分时,currentNumber=2->滚动开始移动->1->移动一半以上->2 当然,时间很短。
如何解决

我是这样解决的:

首先,当寻呼机点击时,我将bool指示器设置为:

//AppDelegate.m
didFinishLaunchingWithOptions:launchOptions{
...
appStartController = [[NavViewController alloc] init];
self.window.rootViewController = appStartController;
...  }

//NavViewController.h
@property(strong, nonatomic) IBOutlet UIScrollView *pageScroll;
@property(strong, nonatomic) IBOutlet UIPageControl *pageControl;

//NavViewController.m
...
[pageControl addTarget:self action:@selector(getChangePage:)     forControlEvents:UIControlEventValueChanged];

- (void)getChangePage:(UIPageControl *)pageControl
{
int page = pageControl.currentPage;
CGRect frame = pageScroll.frame;
frame.origin.x = frame.size.width * page;
frame.origin.y = 0;
[pageScroll scrollRectToVisible:frame animated:YES];
}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGFloat pageWidth = scrollView.frame.size.width;
int page = floor((scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
if(page!=pageControl.currentPage){
pageControl.currentPage = page;   }
}
然后在scrollViewDidScroll上,如果animationPerforming equal是,我就不做任何更改

- (IBAction)changePage:(id)sender {
    animationPerforming = YES; //animation indicator
    //perform scrolling
    [self.scrollView scrollRectToVisible:frame animated:YES];

}
动画完成后,我将animationPerforming设置为NO。这是来自的方法

- (void)scrollViewDidScroll:(UIScrollView *)sender {e
    if (animationPerforming) {
        return;
    }
    //else change page number
}
希望有帮助

-(void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
{
    animationPerforming = NO;
}