적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

Swift iOS 앱 개발/실전 Swift

[실전 Swift] Disable multiple touch on UICollectionView 다중 터치 방지

hongssup_ 2021. 1. 18. 15:10
반응형

컬렉션뷰에서 셀을 터치하면 다음 화면으로 넘어가는 시스템에서, 로딩이 되는 잠깐 동안 터치를 더 했을 경우 창이 여러개가 열리는 문제가 발생했다. 이는 Boolean을 사용하여 아주 간단하게 해결할 수 있다. 

 

var cellTapped: Bool = false 선언해준 후 

override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        if cellTapped { return }
        cellTapped = true
}

didSelectItemAt indexPath 에서 

cellTapped = true 선언해주고, 한 번 더 터치 했을 때 실행되지 않도록 return 해준다. 

그리고 추후 다시 false로 선언해주면 된다. 

728x90
반응형