본문 바로가기

Project/MovieClip

(54)
테이블의 rowheight을 동적으로 할 때 주의할 점 1️⃣ tableView.estimatedRowHeight 설정이 누락됨UITableView.automaticDimension을 사용하려면 estimatedRowHeight를 설정해결 방법: viewDidLoad()에서 estimatedRowHeight 값을 추가 override func viewDidLoad() { super.viewDidLoad() detailTableView.delegate = self detailTableView.dataSource = self // ✅ 높이 자동 조절 설정 detailTableView.estimatedRowHeight = 100 // 임의의 예상 높이 설정 detailTableView.rowHeight = UITableVi..
TMDB에서 특정 조건의 video 정보 받아오기 1. 접근방식 검토✅  적절한 접근 방식영화/TV의 비디오 정보를 가져와서 헤더뷰 및 상세 페이지에서 활용공식 트레일러(Official Trailer) 또는 티저(Official Tease)를 우선적으로 가져오기 → Trailer 버튼을 통해 WebView에서 재생나머지 비디오 정보는 테이블뷰의 미디어 섹션에서 컬렉션뷰로 표시 → 사용자가 더 많은 미디어 탐색 가능 (추후) 2. 개선해야 할 부분1️⃣ compactMap을 사용하여 원하는 key 값 가져오기2️⃣ 비디오 정보가 없는 경우 예외 처리 (default 값 또는 nil 체크) (중요)3️⃣ 추가적인 영상 정보를 미디어 섹션(컬렉션뷰)으로 전달하도록 설계 (나중에)   ✅ 업데이트된 fetchContentDetail 메서드HomeViewCont..
✅ UIScrollView 안에 UITableView를 넣는 것이 올바른가? (상세페이지 구현) 일반적으로 UIScrollView 안에 UITableView를 넣는 것은 권장되지 않습니다.이유는 두 개의 스크롤 기능이 충돌할 수 있기 때문입니다.❌ 문제점스크롤 충돌UIScrollView와 UITableView 모두 수직 스크롤이 가능하기 때문에, 터치 이벤트가 어디로 전달될지 애매해질 수 있음.예를 들어, UIScrollView가 스크롤을 가로채거나, UITableView가 제대로 스크롤되지 않는 문제 발생 가능.UITableView의 contentSize 문제UITableView는 자체적으로 contentSize를 계산하여 스크롤을 조정함.UIScrollView 안에 들어가면 UITableView가 자신의 높이를 자동으로 조절하지 못할 수 있음.스크롤 동작이 이상해질 가능성UIScrollView가..
셀 재사용으로 인한 이전 데이터 표시되는 문제 🚒 문제 원인UITableView와 UICollectionView는 셀을 재사용하기 때문에,스크롤을 내릴 때 이전에 사용된 셀의 데이터가 그대로 남아 있는 상태에서 새로운 데이터가 적용됨. 🛠 해결 방법prepareForReuse() 메서드 추가셀을 재사용할 때 기본 상태로 초기화하여 이전 데이터가 남지 않도록 함.컬렉션 뷰 셀에서 prepareForReuse() 구현UIImageView, UILabel 등의 UI 요소를 기본 상태로 초기화. 📌 수정 코드 (HomeFeedCollectionViewCell.swift)class HomeFeedCollectionViewCell: UICollectionViewCell { ... // ✅ prepareForReuse() 추가 ->..
상세페이지로 넘어가기 (문제 해결, 데이터 전달 방법 비교) 📌 영화 및 TV 상세 정보 페이지를 구현하는 최적의 데이터 전달 방법✅ 컬렉션뷰의 영화 셀을 눌렀을 때, 해당 id를 전달하여 상세 정보를 불러올 예정✅ 영화(Movie)뿐만 아니라 TV(TVShow) 상세 페이지도 동일한 DetailViewController에서 사용해야 함✅ 델리게이트 패턴, configure(), init()을 통한 데이터 전달 방식 중 어떤 것이 가장 적절한지 고민 중  🚀 해결 방법🔹 최적의 선택: init(movieID:) 또는 init(contentID:contentType:) 사용1️⃣ DetailViewController에서 movieID 또는 tvID를 받아야 하므로 초기화(init)에서 직접 전달2️⃣ viewDidLoad()에서 API 요청을 실행하여 데이터를..
에러 발생 - 예상치 못한 데이터 값 발생 📌 에러 분석에러 메시지를 보면 Swift.DecodingError.dataCorrupted가 발생ailed to fetch data: dataCorrupted(Swift.DecodingError.Context( codingPath: [CodingKeys(stringValue: "results", intValue: nil), _CodingKey(stringValue: "Index 10", intValue: 10), CodingKeys(stringValue: "known_for_department", intValue: nil)], debugDescription: "Cannot initialize KnownForDepartment from..
테이블의 섹션 별로 다르게 UI 구성 📌 해결해야 할 문제✅ totalStackView의 arrangedSubviews를 Movie, TV, People에 따라 다르게 구성해야 함✅ Movie, TV일 때 → [genreLabel, releasedDateLabel]✅ People일 때 → [titleLabel] 🚀 해결 방법1️⃣ totalStackView의 arrangedSubviews를 동적으로 변경기존의 totalStackView를 초기화할 때 arrangedSubviews를 미리 지정하지 않음각 configureCollectionView(_:) 호출 시 적절한 뷰를 totalStackView에 추가이전에 추가된 arrangedSubviews를 removeAllArrangedSubviews()로 제거하여 중복 방지 🔧 개선된 코드..
영어 장르 이름을 한글로 표시하기 https://explorer89.tistory.com/321 genre_ids 의 Int 타입의 배열에 맞는 genre 찾기📌 해결해야 할 문제1️⃣ 영화 목록 내 genre_ids의 값을 받아옴{ "page": 1, "results": [ { ... "genre_ids": [ 27, 53 ], ... }, 2️⃣ 장르의 값을 TMDB API를 통해 받아옴{ "genres": [ { "id": 27, "name": "공포" }, ... }, {explorer89.tistory.com ✅ 위의 블로그와 이어진 내용📌 특정 장르 이름을 커스텀 변환하여 한글로 표시하기현재 getTVGenre()에서 가져오는 genre.name이 영어로 반환되는 경우가 있음예를 들어 "Action & Adventure" ..