아이폰의 기능중 이미지를 멀티 터치로 확대/축소 하는 기능을 구현해 보자...
아주 아주 간단하다~!!!
Step1.
먼저 Window base의 프로젝트를 생성한다.
프로젝트 이름은 ImageZoomTest로 하자!
Step2.
새로운 클래스를 하나 만든다.,,,NSObject를 상속받는 클래스를 하나 만들자.
이름은 간단하게 MyImageZoom로 하자
Step 3.
아래 처럼 상속 구조를 NSObject => UIScrollView로 변경하자.
// 기존
@interface MyImageZoom : NSObject {
}
@end
//변경후
@interface MyImageZoom : UIScrollView {
}
Step 4. UIScrollView 관련 delegate추가 하자 , 또한 화면에 그려줄 UIImageView를 추가해주자
@interface MyImageZoom : UIScrollView <UIScrollViewDelegate>{
UIImageView * imageView;
}
@property (nonatomic,retain)UIImageView * imageView;
@end
Step5. 이제 MyImageZoom Class구현을 하자 아래 코드에 주석으로 설명을 달았으니 참고를,,,,,
#import "MyImageZoom.h"
@implementation MyImageZoom
@synthesize imageView;
-(id)initWithFrame:(CGRect)frame
{
if(self = [super initWithFrame:frame])
{
// 확대/축소할 이미지를 불러오자....
// image0.jpg라는 이미지를 프로젝트 resource 폴더에 드래그해서 추가해야한다....
UIImage *testImage = [UIImage imageNamed:@"image0.jpg"];
imageView = [[UIImageView alloc]initWithImage:testImage];
// 이미지를 해상도 비율에 맞게 리사이징한다....
imageView.contentMode = UIViewContentModeScaleAspectFit;
// 확대/축소시 비율을 맞게 설정한다...
imageView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
// 화면에 보여줄 이미지 뷰어의 크기를 설정한다..
[imageView setFrame:CGRectMake(0, 0, testImage.size.width, testImage.size.height)];
[self addSubview:imageView];
[imageView release];
self.delegate = self;
// 확대.축소 배율을 정하자
self.maximumZoomScale = 1.0f;
self.minimumZoomScale = 0.4f;
[self setContentSize:CGSizeMake(testImage.size.width, testImage.size.height)];
[self setZoomScale:self.minimumZoomScale];
}
return self;
}
// UIScrollView에게 확대 / 축소될 녀석이 누군인지 알려주자
-(UIView*)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return imageView;
}
@end
@end
Step 6. 이제 ImageZoomTestAppDelegate.m 파일에 가서 아래처럼 코딩하자..window에게 view 설정만 하면된다
#import "ImageZoomTestAppDelegate.h"
#import "MyImageZoom.h"
@implementation ImageZoomTestAppDelegate
@synthesize window=_window;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
MyImageZoom * myZoom = [[MyImageZoom alloc]initWithFrame:[[UIScreen mainScreen]bounds]];
[self.window addSubview:myZoom];
[self.window makeKeyAndVisible];
return YES;
}실행후 option + 마우스 이동하면 멀티 터치를 확인할수 있습니다
여기까지가 UIScrollView를 이용한 UIImage 확대/축소[Zoom in/out] 기능 구현이 었습니다
출처 : http://dongss.tistory.com/38
'프로그래밍 > iOS' 카테고리의 다른 글
UIImageView에 라운딩 처리 (0) | 2012.01.11 |
---|---|
UIImageView 회전 시키기. (0) | 2012.01.09 |
iOS의 UDID 제거 이후 나오는 대안들 (0) | 2012.01.03 |
iOS5의 UDID 정책 변경에 따른 문제해결방안 (0) | 2012.01.03 |
이미지의 이동, 회전, 스케일 변경 (0) | 2011.12.27 |