Potato
안녕하세요, 감잡니다?🥔 ^___^ 😺 github 바로가기 👉🏻

potato's iOS Story/개발하면서 만난 친구들

[UIKit] collectionview 터치 이벤트 넣기 (터치되면 gif 다시 동작하게 하기)

감자 🥔 2022. 11. 7. 04:22
반응형

생각해보니까, collectionview에 터치이벤트를 넣어본적이 없네?

생각해보니까, collectionview를 터치하는 이벤트를 개발해본적이 없다. 이흔한걸?🤯😱 그동안 난 뭘 한건가. 뭐 쨋든,,, 이번에 해보면 되니까 ^___^

override 로 isSelected 변수 사용하기

collectionviewCell에는 isSelected 를 override 해서 사용할 수 있다. isSelected변수는, 셀이 터치가 된 유무를 Bool값으로 표현해준다.

나는 우선 json으로 gif파일을 받아서, Lottie라는 써드파티 라이브러리를 이용해서 gif를 CollectionViewCell내부에 삽입했다.

이 isSelected 변수를 이용해서, 터치가 된 경우 lottie가 재생되게 만들 것이다.

디자이너 🫐베에에에릐🍓의 의도는 저기있는 로티 이미지가 두번만 재생되게 하고, 터치가 되면 다시 두번 재생하게 하는 것이었다. 이것을 구현했다.

넘간단행!! isSelected가 ture이면, lottie를 재생시키자!

collectionViewCell 내부에 isSelected 변수를 override 해보자.

final class AchieveSummaryLottieCollectionViewCell: UICollectionViewCell {

    override var isSelected: Bool {
        didSet {
            if isSelected {
                lottieView.play()
            }
        }
    }

..아래 생략

여기서 isSelected는 이렇게 넣으면 된다.. 터치가 되고 나서 바로 호출되게끔 didSet을 사용해서 만들었고, 바로 호출되었을때, isSelected가 true 면 lottieView를 play()하게 만들었다. 이전에 lottieView에서 play하는 기준을 repeat(2) 로 주었기 때문에 또 다시 repeat(2)는 넣어주지 않아도 된다.

참고자료 - https://woongsios.tistory.com/107

 

최종 화면

반응형