🚒 문제 원인
UITableView와 UICollectionView는 셀을 재사용하기 때문에,
스크롤을 내릴 때 이전에 사용된 셀의 데이터가 그대로 남아 있는 상태에서 새로운 데이터가 적용됨.
🛠 해결 방법
- prepareForReuse() 메서드 추가
- 셀을 재사용할 때 기본 상태로 초기화하여 이전 데이터가 남지 않도록 함.
- 컬렉션 뷰 셀에서 prepareForReuse() 구현
- UIImageView, UILabel 등의 UI 요소를 기본 상태로 초기화.
📌 수정 코드 (HomeFeedCollectionViewCell.swift)
class HomeFeedCollectionViewCell: UICollectionViewCell {
...
// ✅ prepareForReuse() 추가 -> 셀 제사용 문제 해결
override func prepareForReuse() {
super.prepareForReuse()
posterImageView.image = nil
titleLabel.text = nil
genreLabel.text = nil
releasedDateLabel.text = nil
}
...
}
✅ 설명
- prepareForReuse()를 구현
- 셀 재사용 시 기본 상태로 초기화 (posterImageView.image = nil, titleLabel.text = nil)
- 이전 데이터가 남아있지 않도록 방지.
- configureCollectionView(_:)에서 Any 타입을 받아서 영화, TV, 사람 정보 구분
- MovieResult, TVResult, PeopleResult 각각에 맞게 UI 설정.
'Project > MovieClip' 카테고리의 다른 글
TMDB에서 특정 조건의 video 정보 받아오기 (0) | 2025.02.10 |
---|---|
✅ UIScrollView 안에 UITableView를 넣는 것이 올바른가? (상세페이지 구현) (0) | 2025.02.09 |
상세페이지로 넘어가기 (문제 해결, 데이터 전달 방법 비교) (0) | 2025.02.08 |
에러 발생 - 예상치 못한 데이터 값 발생 (0) | 2025.02.07 |
테이블의 섹션 별로 다르게 UI 구성 (0) | 2025.02.07 |