UICollectionView 5

UICollectionView Crashes on iOS 18 with Xcode 16: Troubleshooting Guide

UICollectionView Crashes on iOS 18 with Xcode 16: Troubleshooting Guide 기존 운영중인 코드에서 Xcode 16, iOS 18 에서만 UICollectionView 크래시 발생 크래시 상황 분석상황 분석Xcode 16 + iOS 17.7 ✅ 크래시 미발생Xcode 16 + iOS 18 + ❌ 크래시 발생즉, Xcode 16과 iOS 18 기기 한정해서 발생하는 걸로 보임. 크래시 현상 재현 코드deque를 2회이상 수행하면 크래시가 발생.import UIKitclass ViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource, UICollectionV..

UICollectionView isSelected 정리

UICollectionView isSelected 정리 UICollectionView에서 overrdie isSelected를 통해 상태를 변경할 수 있음사용자가 선택할 때마다 isSelected가 변경됨.주의할 점: isSelected를 override해서 사용하는 경우 버전에 따라 선택 상태가 제대로 UI에 반영되지 않을 수 있음.TableView에서는 동작성이 다름.UITableView 사용성 링크: https://rldd.tistory.com/628호출순서override isSelected (이전에 선택된 아이템)DeSelect (이전에 선택된 아이템)override isSelected (현재 선택된 아이템)didSelect (현재 선택된 아이템)예제코드import UIKitimport Swift..

[UIKit] reloadSections에서 애니메이션 없애는 방법

reloadSections에서 애니메이션 없애는 방법 UITableView 혹은 UICollectionView를 사용할 때 reloadData()가 아니라 특정 섹션만 업데이트하는 reloadSections()를 사용할 수 있음. 특정 섹션만 업데이트 하는 것은 이점도 존재하나, 애니메이션이 들어가게 되어서 원하는 UX 결과물이 아니거나, 방송 실시간 채팅처럼 매우 빠른 속도로 데이터가 들어와 UI를 업데이트가 진행되는 경우 UI가 블락되거나, 심지어는 크래시가 발생하기도 함. Task { @MainActor [weak self] in guard let self else { return } UIView.performWithoutAnimation { self.reloadSections(in..

[iOS] UICollectionView에 대해서 알아보기 3편 (동적 Cell)

UICollectionView에 대해서 알아보기 3편 ✅ 이번에는 CollectionView를 이용하여 height을 동적으로 구성하는 방법에 대해서 알아보자. 이 부분에 있어서는 여러개의 구글링을 하면서 여러개의 포스팅을 찾아보았다. - dummyCell 방법이 가장 흔한 것 같은데, 잘 안되었다. - 그래서 이 방법 사용 고고! - dummyCell의 경우에는 내 코드를 가져가서 리팩토링해서 알려주면 좋겠다,, 누군가 소스코드 🌿 결과물 🌿 ✅ 코드 /// 셀의 레이아웃 정보를 구성 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt ..

[iOS] UICollectionView에 대해서 알아보기 2편

UICollectionView에 대해서 알아보기 2편 이번에 해볼 작업들 1. 여러개의 섹션 헤더 및 푸터 만들어보기 2. 헤더에 이미지 넣기 3. 리프레시 컨트롤 넣기 4. 우측에 리프레시 넣기 5. 페이지네이션 (해결하지 못한 부분) - 헤더의 배너 부분을 pageViewController처럼 구현하고자 하였으나 아직 방법을 못찾음 - collectionView에 refreshControl을 달아서 사용자가 손을 떼는 순간에 이벤트가 들어가게 하려고 했으나 실패 입니다. 자료에 대한 소스코드 입니다. 사용한 Swift Package - RxSwift 6.5.0 - Snapkit 5.6.0 - RxGesture 4.0.4 1. 여러개의 섹션 헤더 및 푸터 만들어보기 컬렉션 뷰에서 섹션 헤더와 푸터를 만..