맨날 코드 작성 안하고 이상한것만 가끔 가끔 올리다가 깃헙에 샘플 레포시토리도 만들겸 간단한 제스쳐 등록 예제를 만들었다. 기본은 제스쳐를 생성하고 인식할 뷰에 추가를 하는것
1 2 3 4 5 6 7 8 9 10 11 |
- (void)viewDidLoad { UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(gesture:)]; [self.view addGestureRecognizer:tapGesture]; } -(void)gesture:(UIGestureRecognizer *)gesture{ NSLog(@"%@", gesture); if ([gesture isKindOfClass:[UITapGestureRecognizer class]]) { mainLabel.text = @"탭"; } } |
기본적으로 iOS에서 지원되는 제스쳐는 tab, pinch, rotation, swipe, pan, screen edge pan, long press이다.
구분을 하자면 pinch와 rotation의 차이는 pinch는 사진을 확대/축소 하듯이 손가락 두개 이상을 오므리거나 펼때 인식하고 rotation은 손가락을 돌릴때 인식한다.
swipe와 pan의 차이는 속도의 차이로 swipe는 페이지를 넘기듯 터치를 휙휙 넘길때 인식하고 팬은 손가락을 천천히 오브젝트를 붙잡고 움직일때 인식한다
screen edge pan같은 경우는 화면 밖에서 안으로, 안에서 밖으로 이동할때 움직인다. 앱의 순서를 바꾸려 할때 앱을 테두리쪽으로 가져가면 다음 페이지로 넘어갈때 쓴다
이번 포스팅을 위해 작성한 깃헙 레포시토리다! 이제 샘플 코드는 여기서!