001.#import "ScrollTestViewController.h"
002.#import "testView.h"
003.
004.@implementation ScrollTestViewController
005.
006.- (void)loadView
007.{
008.[super loadView];
009.
010.
011.scrollview = [[UIScrollView alloc] initWithFrame:self.view.bounds];
012.[self.view addSubview:scrollview];
013.testview = [[testView alloc] initWithFrame:CGRectMake(0, 0, 500, 500)];
014.[scrollview addSubview:testview];
015.[scrollview setContentSize:testview.frame.size];
016.[scrollview setDelegate:self];
017.
018.scrollview.scrollsToTop =YES;
019.
020.[scrollview setMinimumZoomScale:0.1];
021.[scrollview setMaximumZoomScale:50];
022.
023.
024.offset = CGPointMake(0,0);
025.
026.[scrollview setZoomScale:2];
027.screenScale = scrollview.zoomScale;
028.[scrollview setContentOffset : CGPointMake(100, 0) animated:YES];
029.}
030.
031.
032.
033.#pragma mark -
034.#pragma mark UIScrollViewDelegate
035.
036.
037.- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
038.{
039.NSLog(@"scrollViewWillBeginDecelerating");
040.}
041.
042.
043.- (void)scrollViewDidEndDecelerating:(UIScrollView *)_scrollView
044.{
045.NSLog(@"스크롤이 끝난후, 서서히 속도가 줄며 스크롤뷰가 완전히 멈췄을때 발생 -scrollViewDidEndDecelerating");
046.offset.x = _scrollView.contentOffset.x/screenScale;
047.offset.y = _scrollView.contentOffset.y/screenScale;
048.
049.NSLog(@"scrollViewDidEndDecelerating %f, %f ", _scrollView.contentOffset.x, _scrollView.contentOffset.y);
050.NSLog(@"scrollViewDidEndDecelerating offset %f, %f ", offset.x, offset.y);
051.}
052.
053.
054.- (void)scrollViewDidEndDragging:(UIScrollView *)_scrollView
055.willDecelerate:(BOOL)decelerate
056.{
057.NSLog(@"스크롤이 끝났을때 - scrollViewDidEndDragging");
058.offset.x = _scrollView.contentOffset.x/screenScale;
059.offset.y = _scrollView.contentOffset.y/screenScale;
060.
061.NSLog(@"scrollViewDidEndDragging %f, %f ", _scrollView.contentOffset.x, _scrollView.contentOffset.y);
062.NSLog(@"scrollViewDidEndDragging offset %f, %f ", offset.x, offset.y);
063.}
064.
065.
066.
067.
068.- (void)scrollViewDidEndZooming:(UIScrollView *)_scrollView
069.withView:(UIView *)view atScale:(float)scale
070.{
071.NSLog(@"줌인/줌아웃이 끝날때 scrollViewDidEndZooming");
072.NSLog(@"scale ----- %f ", scale);
073.[scrollview setZoomScale:scale+0.01 animated:NO];
074.[scrollview setZoomScale:scale animated:NO];
075.screenScale = scale;
076.
077.
078.offset.x = _scrollView.contentOffset.x/screenScale;
079.offset.y = _scrollView.contentOffset.y/screenScale;
080.
081.
082.}
083.
084.
085.
086.- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
087.{
088.
089.NSLog(@"scrollview setContentOffset :animated : YES에 의해서 스크롤 애니메이션이 끝난 경우 발생");
090.NSLog(@"scrollViewDidEndScrollingAnimation");
091.}
092.
093.
094.
095.
096.
097.
098.- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
099.{
100.NSLog(@"zooming 될때 - viewForZoomingInScrollView");
101.UIView *view = nil;
102.if (scrollView == scrollview) {
103.view = testview;
104.}
105.return view;
106.}
107.
108.- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view
109.{
110.NSLog(@"## - scrollViewWillBeginZooming");
111.}
112.
113.
114.- (void)scrollViewDidScroll:(UIScrollView *)scrollView
115.{
116.NSLog(@" 스크롤이 발생할때 scrollViewDidScroll");
117.}
118.
119.
120.
121.
122.- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView
123.{
124.NSLog(@"scrollViewShouldScrollToTop");
125.
126.return YES;
127.}
128.
129.
130.- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView
131.{
132.NSLog(@"TOP영역으로 스크롤이 완료 되었을때 실행. scrollViewDidScrollToTop");
133.}
134.
135.
136.- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
137.{
138.NSLog(@"스크롤이 시작전에 scrollViewWillBeginDragging");
139.}
140.
141.
142.
143.- (void)dealloc
144.{
145.[super dealloc];
146.}