출처 : http://cafe.naver.com/mcbugi/222530
제스쳐 스니펫입니다.
뭐 별로 복잡하게 꼬여있지 않아서.. 올려봅니다.
viewDidLoad 만 좀 수정하면 나머지는 그냥 씁니다. (필요없으면 지워도 되고...)
밑에 노트넣어놨습니다. 같이 넣어두시면 나중에 한두번 다시 보게될듯 합니다.
처음에는 파일 첨부를 했는데 뭐 따로 받아다 넣는것 보다
그냥 코드 긁어다 추가해주면 그게 더 쉽겠습니다.
긁어다 놓고, 이름지어주고, 단축키넣어주고. 끝.
아래는 스니펫 코드 입니다. (걍 긁어다가 넣으면 들어가더라구여..)
#pragma mark - UITapGestureRecognizer
제스쳐 스니펫입니다.
뭐 별로 복잡하게 꼬여있지 않아서.. 올려봅니다.
viewDidLoad 만 좀 수정하면 나머지는 그냥 씁니다. (필요없으면 지워도 되고...)
밑에 노트넣어놨습니다. 같이 넣어두시면 나중에 한두번 다시 보게될듯 합니다.
처음에는 파일 첨부를 했는데 뭐 따로 받아다 넣는것 보다
그냥 코드 긁어다 추가해주면 그게 더 쉽겠습니다.
긁어다 놓고, 이름지어주고, 단축키넣어주고. 끝.
아래는 스니펫 코드 입니다. (걍 긁어다가 넣으면 들어가더라구여..)
#pragma mark - UITapGestureRecognizer
// Note.
// 뷰컨트롤러에서 사용한다.
// swipe 와 pan 은 동시사용이 안된다 (pan으로 이동하면 swipe 가 되기 때문)
// 위의 이유로 swipe는 주석처리 하였다. (바꾸면 된다.)
// swipe의 방향은 4가지 (위/아래/좌/우) 인데, 4방향 다 필요하면 4개로 만들면 된다.
// 기존에 버튼액션이나 터치 액션이 있으면 거기다가 연결해도 된다
// 경험상.. 많은 제스쳐를 이용해야 하면.. 버튼이 좋다.(제스쳐 20번 하면 팔빠짐..)
// touch 액션으로 연결해도 좋을듯..
// UISlider 도 같이 사용이 안된다 슬라이딩을 swipe 제스쳐로 인식한다
// viewDidLoad 메소드에 넣어야 되는게 있으므로.. 넣어두고 정리해야한다
// 제스쳐에 의한 액션 @selector 는 그냥 두었다. 아래 메소드에가서 구현할걸 하면 될듯..
// 아니면 기존에 있는 메소드 선택하면 된다.
// 아니면 기존에 있는 메소드 선택하면 된다.
// 프레임워크나 헤더 델리게이트는 따로 필요없다.
- (void)viewDidLoad
{
[super viewDidLoad];
UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapDetected:)];
doubleTap.numberOfTapsRequired = 2;
[self.view addGestureRecognizer:doubleTap];
UIPinchGestureRecognizer *pinchRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchDetected:)];
[self.view addGestureRecognizer:pinchRecognizer];
UIRotationGestureRecognizer *rotationRecognizer = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotationDetected:)];
[self.view addGestureRecognizer:rotationRecognizer];
UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panDetected:)];
panRecognizer.minimumNumberOfTouches = 1;
panRecognizer.maximumNumberOfTouches = 2;
[self.view addGestureRecognizer:panRecognizer];
/*
UISwipeGestureRecognizer *swipeRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeDetected:)];
swipeRecognizer.direction = UISwipeGestureRecognizerDirectionRight;
[self.view addGestureRecognizer:swipeRecognizer];
*/
UILongPressGestureRecognizer *longPressRecognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressDetected:)];
longPressRecognizer.minimumPressDuration = 2;
longPressRecognizer.numberOfTouchesRequired = 1;
[self.view addGestureRecognizer:longPressRecognizer];
}
- (IBAction)longPressDetected:(id)sender{
NSLog(@"2 Second Long Press");
}
- (IBAction)panDetected:(id)sender{
NSLog(@"Pan & Draging");
}
/*
- (IBAction)swipeDetected:(id)sender{
NSLog(@"Right Swipe");
}
*/
- (IBAction)tapDetected:(id)sender{
NSLog(@"Double Taping");
}
- (IBAction)pinchDetected:(id)sender{
CGFloat scale = [(UIPinchGestureRecognizer *)sender scale];
CGFloat velocity = [(UIPinchGestureRecognizer *)sender velocity];
NSString *resultString = [[NSString alloc] initWithFormat:@"[Pinch]\nscale = %.2f,\n velocity = %.2f",scale,velocity];
NSLog(@"%@",resultString);
}
- (IBAction)rotationDetected:(id)sender{
CGFloat radians = [(UIRotationGestureRecognizer *)sender rotation];
CGFloat velocity = [(UIRotationGestureRecognizer *)sender velocity];
NSString *resultString = [[NSString alloc] initWithFormat:@"[Rotation]\nRadians = %.2f,\n velocity = %.2f",radians,velocity];
NSLog(@"%@",resultString);
}
'프로그래밍 > iOS' 카테고리의 다른 글
[snippet] Touch Method (0) | 2012.07.22 |
---|---|
[snippet] 현재 설치된 앱의 경로 확인 (0) | 2012.07.22 |
[snippet] Lazy Instantiation (0) | 2012.07.22 |
[snippet] 기기회전에 따른 요소 재배치 (0) | 2012.07.22 |
[snippet] iAd 삽입 (0) | 2012.07.22 |