MainViewController.m
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
// 创建底层scrollView
_bigScrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];
// 定义底层颜色
_bigScrollView.backgroundColor = [UIColor blueColor];
// 设置滚动范围
_bigScrollView.contentSize = CGSizeMake(2240, 0);
// 底层scrollView添加协议
_bigScrollView.delegate = self;
// 到达边缘后没有弹动效果
_bigScrollView.bounces = NO;
// 分页显示
_bigScrollView.pagingEnabled = YES;
[self.view addSubview:_bigScrollView];
[_bigScrollView release];
// 创建上层scrollView
for (int i = 0; i < 7; i++) {
_scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(i * 320, 0, 320, 480)];
_scrollView.maximumZoomScale = 3.0;
_scrollView.minimumZoomScale = 0.5;
_scrollView.delegate = self;
[_bigScrollView addSubview:_scrollView];
// 创建相框
UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];
NSString *imageName = [NSString stringWithFormat:@"%d.jpg",i];
imageView.image = [UIImage imageNamed:imageName];
[_scrollView addSubview:imageView];
[imageView release];
[_scrollView release];
}
_pageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(0, 460, 320, 20)];
_pageControl.currentPageIndicatorTintColor = [UIColor redColor];
// 显示点的个数
_pageControl.numberOfPages = 7;
[_pageControl addTarget:self action:@selector(pageControl:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:_pageControl];
[_pageControl release];
}
- (void)pageControl:(UIPageControl *)pageControl
{
[_bigScrollView setContentOffset:CGPointMake(pageControl.currentPage * 320, 0) animated:YES];
NSArray *array = [_bigScrollView subviews];
for (UIScrollView *scrollView in array) {
if ([scrollView isKindOfClass:[UIScrollView class]] ) {
scrollView.zoomScale = 1;
}
}
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
int pageNumber = scrollView.contentOffset.x / scrollView.frame.size.width;
_pageControl.currentPage = pageNumber;
}
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
NSArray *array = [scrollView subviews];
UIImageView *imageView = [array firstObject];
return imageView;
}
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
{
NSArray *array = [_bigScrollView subviews];
if (scrollView == _bigScrollView) {
for (UIScrollView *scrollView in array) {
if ([scrollView isKindOfClass:[UIScrollView class]]) {
scrollView.zoomScale= 1.0;
}
}
}
}