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.
}