头文件.h #import <UIKit/UIKit.h> #import "ViewController1.h" #import "ViewController2.h" @interface pagecontrol : UIViewController { UIScrollView *scrollView; UIPageControl *pageControl; ViewController1 *viewController1; ViewController2 *viewController2; BOOL pageControlUsed; } @property (nonatomic, retain) IBOutlet UIPageControl *pageControl; - (IBAction)changePage:(id)sender; @end /// 主文件.m @implementation pagecontrol - (void)viewDidLoad { [super viewDidLoad]; CGRect frame = [UIScreen mainScreen].applicationFrame; scrollView = [[UIScrollView alloc] initWithFrame:frame]; scrollView.showsVerticalScrollIndicator = NO; scrollView.showsHorizontalScrollIndicator = NO; scrollView.pagingEnabled = YES; scrollView.contentSize = CGSizeMake(scrollView.frame.size.width*2,scrollView.frame.size.height); scrollView.scrollsToTop = NO; scrollView.delegate = self; viewController1 = [[ViewController1 alloc] initWithNibName:nil bundle:nil]; viewController2 = [[ViewController2 alloc] initWithNibName:nil bundle:nil]; frame = scrollView.frame; frame.origin.y = 0; viewController1.view.frame = frame; frame.origin.x = frame.size.width; viewController2.view.frame = frame; [scrollView addSubview:viewController1.view]; [scrollView addSubview:viewController2.view]; [self.view insertSubview:scrollView atIndex:0]; [self.view makeKeyAndVisible]; } - (void)scrollViewDidScroll:(UIScrollView *)sender{ if (pageControl) { return; } CGFloat pageWidth = scrollView.frame.size.width; int page = floor((scrollView.contentOffset.x - pageWidth / 2)/pageWidth)+1; pageControl.currentPage = page; } - (IBAction)changePage:(id)sender{ int page = pageControl.currentPage; CGRect frame = scrollView.frame; frame.origin.x = frame.size.width * page; frame.origin.y = 0; [scrollView scrollRectToVisible:frame animated:YES]; pageControlUsed = YES; } - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ pageControlUsed = NO; } - (void)dealloc { [super dealloc]; }