반응형
오늘 나왔던 에러입니다.
책을 검색하는 뷰에서 검색할 수 있는 TextField의 내용에다 돋보기Button을 눌러 검색하는 로직이 하나있고
두번째는 collectionView의 cell을 클릭하면 상세보기 화면으로 넘어가야한다.
여기서 나왔던 문제가 뭐냐
TextField의 클릭시 올라오는 가상키보드가 내려가지 않는다. (기본 셋팅)
그래서 다른 부분의 화면을 클릭하였을 때 UITapGestureRecognizer을 함수를 사용하여 키보드가 내려가는 로직을 수행해야하는데
이 부분에서 collectionView의 didSelectItemAt함수를 사용할 때 UITapGestureRecognizer와 충돌이나서 키보드는 내려가 있는데 didSelectItemAt 함수가 적용되지 않는 경우입니다.
정확히는 충돌이 났다기 보다 UITapGestureRecognizer가 우선적용이 되어 didSelectItemAt 함수가 실행되지 않는다.
private func setupTapGesture() {
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(dismissKeyboard))
addGestureRecognizer(tapGesture)
}
@objc func dismissKeyboard() {
endEditing(true)
}
초기 소스에서는 didSelectItemAt함수가 실행되지 않거나 간혹 실행된다.
private func setupTapGesture() {
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(dismissKeyboard))
tapGesture.cancelsTouchesInView = false
addGestureRecognizer(tapGesture)
}
@objc func dismissKeyboard() {
endEditing(true)
}
이후 cancelsTouchesInView 옵션을 넣으면 CollectionView의 터치 이벤트를 방해하지 않는다.
반응형
'Ios > Error노트' 카테고리의 다른 글
[Error] UITapGestureRecognizer cancelsTouchesInView 옵션 설정 (0) | 2024.08.14 |
---|---|
[Error] UISearchBar 네 이놈... (0) | 2024.08.02 |
[Error] Alert이후 처리 (0) | 2024.07.16 |
[Error] CoreData 사용시 attribute에서 Type을 URL로 사용하면서 나왔던 에러 (0) | 2024.07.15 |
[Error] cornerRadius가 먹히지 않았던 오류 (0) | 2024.07.12 |