做一個(gè)簡(jiǎn)易的相冊(cè), 每個(gè)圖片都可以放大縮小,并且翻到第二張圖時(shí),再翻回來就變成原來的大小
//1.創(chuàng)建視圖控制器RootViewController,并在Appdelegate.m中將其設(shè)為根視圖控制器
RootViewController *rootVC = [[RootViewController alloc]init];
self.window.rootViewController = rootVC;
[rootVCrelease];
//2.在RootViewController.m中進(jìn)行實(shí)現(xiàn)
#import "RootViewController.h"
//若要實(shí)現(xiàn)視圖的縮放與翻回還原, 需要用到代理
@interface RootViewController () {
//將大滾動(dòng)視圖和其上小滾動(dòng)視圖元素的位置下標(biāo)設(shè)為全局變量
UIScrollView *photoScollView;
NSInteger flag;
}
@end
@implementation RootViewController
- (void)viewDidLoad {
[superviewDidLoad];
//當(dāng)前屏幕的大小
CGSizescreenSize = [UIScreen mainScreen].bounds.size;
//相片名字集合
NSArray*nameArray = @[@"1", @"2", @"3", @"4", @"5", @"6", @"7", @"8",@"9", @"10", @"11", @"12", @"13", @"14", @"15",@"16", @"17", @"18", @"19", @"20", @"21", @"22", @"23",@"24"];
//元素下標(biāo)起始為0
_flag =0;
//創(chuàng)建大的滾動(dòng)視圖
photoScollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0,0, screenSize.width, screenSize.height)];
photoScollView.contentSize = CGSizeMake(screenSize.width *nameArray.count, screenSize.height);
photoScollView.pagingEnabled = YES;
//為大滾動(dòng)視圖設(shè)置代理
photoScollView.delegate = self;
photoScollView.showsHorizontalScrollIndicator = NO;
[self.viewaddSubview:photoScollView];
[photoScollView release];
//通過for循環(huán), 設(shè)置與相片數(shù)量相等的小滾動(dòng)視圖, 并將相片放到小滾動(dòng)視圖上
for(NSInteger i = 0; i < nameArray.count; i++) {
//創(chuàng)建小滾動(dòng)視圖
UIScrollView *smallScrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(i * screenSize.width, 0, screenSize.width,screenSize.height)];
//縮放
smallScrollView.minimumZoomScale = 0.5;
smallScrollView.maximumZoomScale = 2;
smallScrollView.zoomScale = 1.0;
//為小滾動(dòng)視圖設(shè)置代理
smallScrollView.delegate = self;
[photoScollView addSubview:smallScrollView];
[smallScrollView release];
//創(chuàng)建相片視圖
UIImageView *imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:nameArray[i]]];
imageView.frame = CGRectMake(0, 0, screenSize.width,screenSize.height);
//為相片視圖設(shè)置tag值
imageView.tag = 100;
[smallScrollView addSubview:imageView];
[imageView release];
}
}
#pragma mark - UIScrollViewDelegate
//對(duì)哪個(gè)視圖進(jìn)行縮放
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
if(scrollView != photoScollView) {
return [scrollView viewWithTag:100];
} else{
return nil;
}
}
//視圖結(jié)束拖拽時(shí)實(shí)現(xiàn)視圖還原
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
if(scrollView == photoScollView) {
NSInteger currentPage = photoScollView.contentOffset.x / 375;
if (currentPage != flag) {
UIScrollView *smallScrollView = [photoScollView.subviewsobjectAtIndex:flag];
smallScrollView.zoomScale = 1.0;
flag = currentPage;
}
}
}
@end