0
//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; }
}
它看起来不错,可以正常运行。 但我的问题是,当我点击pageControl,其currentNumber改变,然后pageScroll turnTo currentNumber,currentNumber将转向最后一个快速,然后回头。我知道原因,但我不知道如何解决这个问题。UIScrollView与UIPageControl之间发生冲突事件
例如: currentNumber = 1;
当我点击右侧部分,currentNumber = 2 - >滚动开始移动 - > 1 - >移动超过一半 - > 2 当然,时间很短。 如何解决?