반응형
생각해보니까, 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
최종 화면
반응형