UICollectionView


지금까지 망설이고 망설였습니다.

내 개인 앱 “LoAssistant”의 대부분의 보기는 UITableView로 구성됩니다.
정보를 나열하기 가장 쉬운 UITableView를 사용했습니다.

그러나 한계가 조금 빨리 나타났습니다. TableView는 사용하기 쉽고 특정 데이터를 나열하는 데 좋습니다.

못생긴….

UITableView의 디자인은 Oreha Calculator와 같은 다양한 데이터를 직관적으로 표현하기에 적합하지 않았습니다.
ReactorKit으로 리팩토링할 때 UICollectionView에서 리팩토링하는 것이 더 낫다고 생각했습니다.
하지만 UICollectionView에 대해 아무것도 모르기 때문에 서로 알아가자! 그

설명


먼저 오홍의 설명을 보면, 정렬된 데이터 항목 모음을 유지 관리하고 사용자 지정 가능한 레이아웃으로 표시하는 개체입니다. 라고 불리는. 그리고 선언을 보면 UIScrollView 클래스를 하위 클래스로 지정하고 UITableView도 하위 클래스임을 알 수 있습니다.
그리고 @MainActor라는 키워드도 있는데 그건 잘 모르겠는데.. ㅋㅋㅋ 다음엔 좀 더 자세히 살펴보자!

개요

UI에 컬렉션 보기를 추가하면 앱에서 컬렉션 보기와 연결된 데이터를 관리합니다. 그리고 컬렉션 뷰는 컬렉션 뷰의 속성에 저장됩니다. 데이터 소스 객체(데이터 소스 재산)에서 데이터를 받습니다.

데이터 원본 개체란 무엇입니까?

위에서 언급한 데이터 소스에. UICollectionViewDiffableDataSource 개체를 사용할 수 있다고 합니다. 컬렉션 뷰의 데이터 및 UI 업데이트를 쉽고 효율적으로 관리하기 위해 필요한 작업을 제공합니다. 또는 UICollectionViewDataSource 프로토콜을 적용하여 사용자 지정 데이터 원본 개체를 만들 수 있습니다.

무슨 말인지 잘 모르겠지만 계속 진행하겠습니다.

컬렉션 보기의 데이터는 개별 항목으로 구성되며 프레젠테이션을 위해 섹션으로 그룹화할 수 있습니다. 어떤 아이템표시할 가장 작은 데이터 단위입니다. 예를 들어 사진 앱에서 항목은 단일 이미지일 수 있습니다. 컬렉션 보기데이터 소스에서 생성 및 제공하는 클래스의 인스턴스입니다. UICollectionViewCell화면에 항목을 표시합니다.

콘텐츠가 정리되면 UICollectionView를 구성하는 엔터티가 항목이며 각 항목을 화면에 표시하기 위해 UICollectionViewCell 개체가 사용된다고 할 수 있습니다.

하지만!

컬렉션 보기에서 셀만 사용할 수 있는 것은 아니라고 합니다. (약간 충격적) 예를 들어, 아래 이미지처럼 Characters 섹션을 나타내는 헤더는 각각의 셀과 분리되어 있음에도 불구하고 셀이 아닌 뷰로 표현되어 있습니다. 그만큼 ‘에스‘보충 보기’ 그것은 말한다. 추가 뷰를 포함할지 여부는 선택 사항이지만 포함된다면 뷰의 배치를 담당하는 collection view의 레이아웃 객체가 정의한다고 합니다.


공들여 나열한 것

이름만 들어도 머리가 아프다. 편곡이다…
그냥 UI 관련 코드가 제일 골치 아픈데… (지금 SwiftUI로 바꿔야 할까요?)

그럼에도 불구하고! 갤러리 보기에서 레이아웃 개체(레이아웃은 개체 개념입니까?)는 콘텐츠의 배열을 정의합니다. 레이아웃 개체는 UICollectionViewLayout 클래스의 하위 클래스 개체입니다.