首先创建三个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.page 1 = page1ViewController.view
self.page 1.frame = CGRectMake(0.0 f, 0.0 f, self.view .frame .size .width , self.view .frame .size .height )
UIViewController *page2ViewController = [mainStoryboard instantiateViewControllerWithIdentifier:@"page2" ]
self.page 2 = page2ViewController.view
self.page 2.frame = CGRectMake(self.view .frame .size .width , 0.0 f, self.view .frame .size .width , self.view .frame .size .height )
UIViewController *page3ViewController = [mainStoryboard instantiateViewControllerWithIdentifier:@"page3" ]
self.page 3 = page3ViewController.view
self.page 3.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.page 1]
[self.scrollView addSubview:self.page 2]
[self.scrollView addSubview:self.page 3]
}
- (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.3 f animations:^{
int whichPage = self.pageControl .currentPage
self.scrollView .contentOffset = CGPointMake(self.view .frame .size .width * whichPage, 0.0 f)
}]
}
实现了UIScrollViewDelegate协议,这样就可以根据ScrollView的滚动设置ViewPage的位置了。