스닥
Playground
스닥
전체 방문자
오늘
어제
  • 분류 전체보기 (125)
    • 개발자 기본기 (1)
    • Swift 아키텍처 (6)
    • iOS 개발 (55)
      • Swift (12)
      • UIKit (17)
      • SwiftUI (9)
      • CoreData (9)
      • MusicKit (4)
      • WebKit (2)
      • 개발 환경 (0)
      • WatchOS (2)
    • 애플 개발자 아카데미 (4)
    • 막 쓰는 개발일지 (0)
    • 운영체제 (4)
    • 네트워크, 서버 (16)
      • Network (9)
      • Server (7)
    • 알고리즘 (8)
    • C언어 (7)
      • 함수 (7)
    • 하루 이야기 (23)

블로그 메뉴

  • GitHub계정
  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • C 언어
  • 깊이 우선
  • core data
  • ios rendering
  • 도커
  • Core Animation
  • struct class 성능
  • Server
  • SWIFT
  • dfs
  • 문자열 복사
  • docker
  • 트리
  • ip주소
  • 알고리즘
  • 자료구조
  • 서버
  • BFS
  • 너비 우선
  • swift performance

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
스닥

Playground

[UIGestureRecognizer] tableview와 함께 사용하기
iOS 개발/UIKit

[UIGestureRecognizer] tableview와 함께 사용하기

2021. 11. 29. 16:51

 

 

 

테이블 뷰는 기본적으로 scroll을 사용합니다.

 

그래서 tableView에 다른 제스처 액션을 추가하면, 작동하지 않습니다.

 

자세한 이유는 

 

2021.11.17 - [iOS 개발] - [GestureRecognizer] Gesture 잘 사용하기 - 동시에 여러 gesture 사용하기, 주의점

 

[GestureRecognizer] Gesture 잘 사용하기 - 동시에 여러 gesture 사용하기, 주의점

제스처를 사용하는 방법은 간단합니다. 자! 저는 지금부터 infoView라는 제가 만든 View에 왼쪽으로 Swipe했을 때 어떤 동작이 실행되도록 해보겠습니다!! 먼저 우리는 제스처 인식기를 만들어주어야

hasensprung.tistory.com

 

이곳에 열심히 적어두었으니 꼭 참고하시길 바랍니다!!

 

 

 

이런 방법으로 해결을 한 코드는 다음과 같습니다ㅎㅎ

extension ListTableViewController: UIGestureRecognizerDelegate {
    
    func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
        return true
    }
}​
let swipe = UISwipeGestureRecognizer(target: self, action: #selector(backButtonPressed))
let calendarSwipeLeft = UISwipeGestureRecognizer(target: self, action: #selector(dateFWButtonPressed))
let calendarSwipeRight = UISwipeGestureRecognizer(target: self, action: #selector(dateBWButtonPressed))
swipe.direction = .right
swipe.delegate = self
calendarSwipeLeft.direction = .left
calendarSwipeRight.direction = .right
self.listTableView.addGestureRecognizer(swipe)
self.calendarView.gestureRecognizers = [calendarSwipeLeft, calendarSwipeRight]

 

 

줄여서 이야기하자면, 여러 종류의 제스처 액션 인식기를 사용하기 위해서는

func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool

delegate를 채택해서, 이 제스처 인식기가 여러 제스처를 모두 인식을 하게 해주는 함수의 리턴값을 True로 바꿔주면 됩니다.

 

또 addGeustreRecognizer과 같이 사용해야 하고, view.gestureRecognizers = [] 이런식으로 사용하면 안된다는 것.

꼭 기억합시다!!

'iOS 개발 > UIKit' 카테고리의 다른 글

[Auto Layout] Multiplier(2)  (0) 2021.12.22
[Auto Layout] Multiplier(1)  (0) 2021.12.21
[Auto Layout] Equal Constraints에 대해서  (0) 2021.12.20
[UITableView] SwipeAction - cell 삭제 (확인 Alert와 함께)  (0) 2021.11.29
[UITextView] 줄 수, 글자 수 제한  (0) 2021.11.22
[UIView] 정말 예쁜 blur Effect  (0) 2021.11.21
[Swift] App 첫 로딩을 감지하는 법 (first loading detection)  (0) 2021.11.20
[Swift] 앱 안에서 메일 보내기  (0) 2021.11.20
    스닥
    스닥
    https://github.com/feldblume5263

    티스토리툴바