//
// RootViewController.m
// UI - DAY- 8
//
// Created by lanouhn on 15/3/26.
// Copyright (c) 2015年 lanouhn. All rights reserved.
//
#import "RootViewController.h"
@interface RootViewController () <UIScrollViewDelegate>
{
UIScrollView *scrollView1;
UIPageControl *pageControl;
NSInteger index;
}
@end
@implementation RootViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
//创建UIScrollView
scrollView1 = [[UIScrollView alloc] initWithFrame:[UIScreen mainScreen].bounds];
scrollView1.contentSize = CGSizeMake(self.view.frame.size.width * 14, self.view.frame.size.height);
scrollView1.pagingEnabled = YES;
scrollView1.delegate = self;
scrollView1.backgroundColor = [UIColor yellowColor];
[self.view addSubview:scrollView1];
[scrollView1 release];
//创建UIImageView
for (NSInteger i = 0; i < 14; i++) {
NSString *name = [NSString stringWithFormat:@"%ld", i + 1];
UIScrollView *aScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(i * 375, 0, 375, 667)];
aScrollView.contentSize = CGSizeMake(375, 667);
aScrollView.minimumZoomScale = 0.5;
aScrollView.maximumZoomScale = 2;
aScrollView.delegate = self;
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:name]];
imageView.tag = 100 + i;
imageView.frame = CGRectMake(0 , 0, self.view.frame.size.width, self.view.frame.size.height);
[aScrollView addSubview:imageView];
[scrollView1 addSubview:aScrollView];
// [scrollView addSubview:imageView];
[aScrollView release];
[imageView release];
}
//创建UIPageControl
pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(0, 630, 375, 40)];
pageControl.numberOfPages = 14;
pageControl.pageIndicatorTintColor = [UIColor redColor];
[pageControl addTarget:self action:@selector(change:) forControlEvents:UIControlEventValueChanged];
pageControl.currentPageIndicatorTintColor = [UIColor greenColor];
[self.view addSubview:pageControl];
[pageControl release];
}
- (void)change:(UIPageControl *)aPageControl {
CGPoint point = CGPointMake(375 * [pageControl currentPage], 0);
[scrollView1 setContentOffset:point animated:YES];
}
- (void)pinch:(UIPinchGestureRecognizer *)aPinch {
NSLog(@"%s", __FUNCTION__);
UIImageView *newImageView = (UIImageView *)[self.view viewWithTag:100 + pageControl.currentPage];
newImageView.transform = CGAffineTransformScale(newImageView.transform, aPinch.scale, aPinch.scale);
//重置比率
aPinch.scale = 1;
}
#pragma mark - UIScrollViewDelegate
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
pageControl.currentPage = scrollView1.contentOffset.x / 375;
if (index != pageControl.currentPage) {
((UIScrollView *)[scrollView1.subviews objectAtIndex:index]).zoomScale = 1;
}
}
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
NSLog(@"%@", scrollView);
return [scrollView.subviews objectAtIndex:0];
}
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view {
index = pageControl.currentPage;
}
- (void)scrollViewDidZoom:(UIScrollView *)scrollView {
UIImageView * viewImage = [scrollView.subviews objectAtIndex:0];
CGPoint newCenter = viewImage.center;
newCenter.x = scrollView.frame.size.width / 2;
newCenter.y = scrollView.frame.size.height / 2;
viewImage.center = newCenter;
NSLog(@"%@", NSStringFromCGPoint(newCenter));
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
/*可以
每个图片都放大缩小,并且翻到第二张图时,再翻回来就变成原来的大小.并且使用UIPageControl与UIScrollView结合.
*/
@end
原文:http://www.cnblogs.com/xiaoxuetongxie/p/4370282.html