[iOS] tapGesture 예제를 코드로 다뤄보기
IT/IOS

[iOS] tapGesture 예제를 코드로 다뤄보기

"좋아요" 와 "싫어요" 버튼에 tapGesture 이벤트를 적용하여 예제를 만들었습니다. 

*네비게이션 바와 background 색상을 제외하고 모두 코드로 작성했습니다.  참고하실 분은 git을 참고해주세요!*

https://github.com/UCDAyoung/Project30

 

GitHub - UCDAyoung/Project30

Contribute to UCDAyoung/Project30 development by creating an account on GitHub.

github.com

완성본 

 

순서 

0. tapGesture 적용할 인스터스 만들기 

1. UITapGestureRecognizer 생성  

2. 셀렉터 action 정의하기 

3. addGestureRecognizer로 인스턴스에 이벤트 추가하기 

 

 

 

 

0. tapGesture 적용할 인스터스 만들기 ( UI에 들어갈 인스턴스 및 변수들 )

 

1. UITapGestureRecognizer 생성  

(이벤트는 한 번 적용해놓으면 되니까 viewDidLoad에 넣어놓았습니다.)

//1

먼저 UITapGestureRecognizer(target:action:) 메소드를 사용하여 target 과 action 을 정합니다. 

taps1은 좋아요 버튼에 들어갈 tapGestureRecognizer 입니다.

taps2은 싫어요 버튼에 들어갈 tapGestureRecognizer 입니다.

 

 

 

2. 셀렉터 action 정의하기 

//2 action에 들어갈 셀렉터를 정의합니다. (반드시 @objc 키워드를 붙여줘야 합니다. )

Like 액션 : 좋아요 action 

Cancel 액션 : 싫어요 action

 

3. addGestureRecognizer로 인스턴스에 이벤트 추가하기 

마지막으로, 적용할 ui에 addGestureRecongizer를 추가해줍니다. 

여기서는 likeButton과 cancleButton에 추가를 해주었습니다.

 

 

 

짚고 가야할 주의사항

tapGesture를 적용하려면 tap이 먹히게 해야하는데

UILabel, UIIimage 같이 정적 데이터를 표시하는 뷰는 기본적으로 터치를 처리하지 않아서 아래와 같이 처리를 해주지 않으면 tapGesture가 먹질 않습니다. 

 

방법1. 스토리보드로 사용할 시

user interaction enabled  체크 

방법1. 코드 사용할 시 

버튼이라 사용이 필요없습니다. 사용 예시로만 봐주세요.

인스턴스.isUserInteractionEnabled = true 해줘야 합니다.