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 當然,時間很短。 如何解決?