[Swift] 셀의 재사용 문제 해결하기 prepareForReuse()

Yi Joon Choi·2021년 8월 26일
0

Road To iOS Developer

목록 보기
1/3
post-thumbnail

1. 문제 발견

앱잼 도중 선물 모아보기 뷰에서 컬렉션뷰 셀을 직접 custom으로 제작해서 쓰는데, '받은' 에서 '준'으로 넘어갈 때 마다 전에 쓰인 사진이 한번 보이고 해당 이미지로 넘어가는 현상이 나타났다. (이거 너무 거슬렸다)그래서 문제가 뭘까 생각하다가, '준'으로 넘어가기 전, '받은' 에서도 똑같은 셀을 써주기 때문에, 전에 사용된 셀이 재사용되서 그런게 아닐까 생각해보았다.

그렇다면 다시 쓰기전에 초기화를 해줘야 하는데... 방법이 없을까? (모르겠을때는 무조건 구선생(Google) GO) 구글링을 하다보니 prepareForReuse() 라는 함수를 발견할 수 있었다.

그럼 도대체 prepareForReuse() 함수가 무엇이길래 이 문제를 해결해주느냐!Apple 공식 문서에 따르면 table view의 delegate를 이용해서 셀을 재사용할때 재사용가능한 셀을 준비해준다는 뜻인 것 같다. 셀을 재사용하기 전에 초기화 등의 특정 액션을 취해주는 느낌인 것 같다.
xib로 생성한 custom cell의 swift 파일에 prepareForReuse함수를 override 해준 다음 안에 셀이 재사용되기 전에 해줘야 할 액션들을 지정해주었다. 아무것도 나오지 않았으면 좋겠기 때문에 nil값을 주어 초기화를 해주었다.
그러면! 어디에서 호출하는 코드가 필요없이, 이 셀이 재사용이 되기전 자동으로 prepareForReuse() 함수가 호출되어 초기화를 해주고 필요한 이미지, 텍스트가 들어갈 것이다.문제해결완료!

profile
최이준

0개의 댓글