UICollectionView 8

Modern Cell configuration - WWDC21

Modern Cell configuration - WWDC21 데이터, 레이아웃, 셀 총 3가지 범주로 분류 가능함. - Data- Layout- Presentation 이번 세션에서는 View를 구성하는 방식에 중점을 둘 예정. 기본 셀을 사용할 때는 위처럼 사용할 수 있음. 구성할 수 있는 Configuration types은 두가지가 존재함- Background Configuration- Content Configuration Swift에서는 Value Type을 만드는데 비용이 매우 저렴함.즉, Configuration에 대한 변경 사항은 셀에 Configuration을 적용할 때까지 어던 것에도 영향을 미치지 않음. 생성하는데 가볍기 때문에 항상 새 Configuration으로 시..

apple/WWDC 2025.05.17

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..

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

[iOS] UICollectionView에 대해서 알아보기 3편 (동적 Cell) 동적으로 UICollectionView Cell을 구성해야 하는데, 아직까지 초보자라서 이거 많이 어렵다.구글링을 통해 다른 사람이 구현한 프로젝트 코드 Stackoverflow 등 엄청나게 많이 예제들을 참고했다. 구현 방향성DummyCell을 사용한 방법 (가장 많이 보이는 패턴이었음)이 형태를 연습해보고자 함. (2023.01.17 추가) 동적셀 요즘은 구현하기가 어렵지 않는데, 그냥 데이터에서 미리 사이즈를 모두 계산하고 처리함.일부만 동적인 경우가 있어서 하다보니 익숙해진 부분도 크다. 소스코드 🌿 결과물 🌿 샘플 코드 /// 셀의 레이아웃 정보를 구성 func collectionView(_ col..

UICollectionView 공부하기 2편

UICollectionView 공부하기 2편 이번에는 헤더랑 푸터 만들어보자 목표1. 여러개의 섹션 헤더 및 푸터 만들어보기2. 헤더에 이미지 넣기3. 리프레시 컨트롤 넣기4. 우측에 리프레시 넣기5. 페이지네이션 샘플 코드개발환경swift pacakge maanger를 통해 외부 의존성 일부 사용 RxSwift 6.5.0 Snapkit 5.6.0 RxGesture 4.0.4 1. 여러개의 섹션 헤더 및 푸터 만들어보기 컬렉션 뷰에서 섹션 헤더와 푸터를 만드는 만드는 방법은 아래의 메소드를 구현섹션과 헤더의 경우에는 각 섹션마다 나타나기에 필요한 경우에만 호출되도록 구현 /// collectionView에서 헤더와 같은 역할 func collectionView( _ collectionVie..

iOS SnapKit 공식문서로 공부하기 10탄 (UICollectionView 코드로 구성하기 3편)

iOS SnapKit 공식문서로 공부하기 10탄 (UICollectionView 코드로 구성하기 3편)Rxswift를 사용하고 FlowLayout에 상하 간격을 넣어보자. 결과 스크린샷 전체 코드//// UICollectionView.swift// SnapKitPractice//// Created by Hamlit Jason on 2021/08/22.//import Thenimport UIKitimport RxSwiftimport RxCocoaimport RxDataSourcesclass MyCollectionViewCell3 : UICollectionViewCell { static let identifier = "cell3" var img = UIImageView().then ..

iOS SnapKit 공식문서로 공부하기 9탄 (UICollectionView 코드로 구성하기 2편)

iOS SnapKit 공식문서로 공부하기 9탄 (UICollectionView 코드로 구성하기 2편) 기본셀이 아니라 내가 만든 커스텀 셀을 사용해서 UI를 구성해보자 전체 코드//// UICollectionViewExample.swift// SnapKitPractice//// Created by Lee Geon Woo on 2021/08/22.//import Thenimport UIKitimport RxSwiftimport RxCocoaimport RxDataSourcesclass MyCollectionViewCell2 : UICollectionViewCell { static let identifier = "cell2" var img = UIImageView().then { ..