首先创建三个ViewController用来装载三个ImageView,然后引用到当前控制器的三个UIView中来,再add到ScrolView中。
- (void)viewDidLoad {
[super viewDidLoad]
// Do any additional setup after loading the view, typically from a nib.
//加载数据
self.scrollView.contentSize = CGSizeMake(self.view.frame.size.width*3, self.view.frame.size.height)
self.scrollView.frame = self.view.frame
self.scrollView.showsVerticalScrollIndicator = NO
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]
UIViewController *page1ViewController = [mainStoryboard instantiateViewControllerWithIdentifier:@"page1"]
self.page1 = page1ViewController.view
self.page1.frame = CGRectMake(0.0f, 0.0f, self.view.frame.size.width, self.view.frame.size.height)
UIViewController *page2ViewController = [mainStoryboard instantiateViewControllerWithIdentifier:@"page2"]
self.page2 = page2ViewController.view
self.page2.frame = CGRectMake(self.view.frame.size.width, 0.0f, self.view.frame.size.width, self.view.frame.size.height)
UIViewController *page3ViewController = [mainStoryboard instantiateViewControllerWithIdentifier:@"page3"]
self.page3 = page3ViewController.view
self.page3.frame = CGRectMake(self.view.frame.size.width * 2, 0, self.view.frame.size.width, self.view.frame.size.height)
self.scrollView.delegate = self
[self.scrollView addSubview:self.page1]
[self.scrollView addSubview:self.page2]
[self.scrollView addSubview:self.page3]
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
CGPoint offset = scrollView.contentOffset
self.pageControl.currentPage = offset.x/self.view.frame.size.width
}
- (IBAction)changPage:(UIPageControl *)sender {
[UIView animateWithDuration:0.3f animations:^{
int whichPage = self.pageControl.currentPage
self.scrollView.contentOffset = CGPointMake(self.view.frame.size.width * whichPage, 0.0f)
}]
}
实现了UIScrollViewDelegate协议,这样就可以根据ScrollView的滚动设置ViewPage的位置了。