일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Xcode
- Clean Code
- SWIFT
- 스위프트
- ribs
- swiftUI
- HIG
- UICollectionView
- map
- collectionview
- swift documentation
- uitableview
- 리펙토링
- UITextView
- uiscrollview
- combine
- Human interface guide
- Protocol
- MVVM
- rxswift
- Refactoring
- ios
- tableView
- clean architecture
- 클린 코드
- 리팩토링
- 애니메이션
- RxCocoa
- Observable
- 리펙터링
- Today
- Total
목록UITapGestureRecognizer (2)
김종권의 iOS 앱 개발 알아가기
예제에서 편의를 위해 사용한 프레임워크 pod 'SnapKit' pod 'Then' pod 'RxSwift' pod 'RxCocoa' pod 'RxGesture' UITapGestureRecognizer를 사용하면서 발생되는 문제 맨 밑에 깔려있는 view에 tapGesture를 등록했을 때, subviews들을 tap해도 이벤트가 발생하는 문제가 존재 ex) 흰색 뷰에 tapGesture를 등록했을 때, layer2, layer1 뷰들을 탭해도 이벤트가 발동 - 상단에 팝업이 있고, 밑에 배경이 있을 때 배경을 탭한 경우 팝업을 숨기고 싶은 경우에 아래와 같이 처리되면 문제가 발생 (layer2만 탭해도 사라지는 현상이 발생할 것) Responder chain의 기본 원리는 superview부터 체크하..
원리 ViewController에 tap gesture를 등록 한 후, 해당 gesture에 대한 이벤트는 view.endEditing(true)이벤트를 주면 해결 Tap의 cancelsTouchesInView = true 속성: 기존에 일어나고 있는 touch이벤트들을 취소시키는 속성 이벤트가 잘 전달되게 하려면 cancelsTouchesInView = false로 지정 필요 구현 extension UIViewController { func hideKeyboardWhenTappedBackground() { let tapEvent = UITapGestureRecognizer(target: self, action: #selector(dismissKeyboard)) tapEvent.cancelsTouches..