CollectionView with TableView는 iOS 개발의 많은 기본 개념 중 두 가지이며, 모든 개발자는 훌륭한 개발자가 되기 위해 이 두 가지를 모두 마스터해야 합니다.
이 게시물에서 우리는 주로 CollectionView에 초점을 맞출 것입니다. CollectionView는 약간의 차이점이 있는 테이블 보기와 동일하고, Collection View는 그리드처럼 보이는 가로 및 세로 스크롤을 모두 지원합니다. iOS의 CollectionView는 Android의 그리드 보기라고도 합니다.
자세한 내용은 https://developer.apple.com/documentation/uikit/uicollectionview를 참조하세요.
컬렉션 보기는 보조 보기와 셀로 구성되어 있는 것을 볼 수 있습니다. 컬렉션 보기는 데이터 소스가 구성하고 제공하는 UICollectionViewCell 클래스의 인스턴스인 셀을 사용하여 화면에 항목을 표시합니다.
데이터 소스가 구성하고 제공합니다.
셀 외에도 보조 보기는 섹션 머리글 및 바닥글과 같이 개별 셀과 분리되어 있지만 여전히 어떤 종류의 정보를 전달하는 것일 수 있습니다. 보조 보기에 대한 지원은 선택 사항이며 컬렉션 보기의 레이아웃 개체에 의해 정의되며, 이 개체는 해당 보기의 배치를 정의하는 역할도 합니다.
따라서 이 게시물에서는 컬렉션 보기를 만드는 방법을 살펴보겠습니다.
시작하겠습니다.
1단계 − Xcode를 열고 단일 보기 응용 프로그램을 만들고 이름을 SampleCollectionView로 지정합니다.
2단계 - 메인에서. 스토리보드는 아래와 같이 UICollectionView를 추가합니다.
3단계 − 컬렉션 보기 셀에서 선택하고 아래와 같이 재사용 식별자 이름을 "셀"로 지정합니다.
4단계 − UICollectionViewCell 유형의 CollectionViewCell이라는 새 Cocoa 터치 파일을 생성하고 아래와 같이 동일한 클래스를 셀에 추가합니다.
5단계 − ViewController.swift에서 컬렉션 뷰의 @IBOutlet을 생성합니다.
6단계 − 이제 컬렉션 보기에 대리인 및 데이터 소스 추가
7단계 − ViewController.swift를 열고 UICollectionViewDelegate 및 UICollectionViewDataSource 확인
class ViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource
8단계 − 아래와 같이 필수 위임 방법을 구현합니다.
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return 500 } func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { let cell: UICollectionViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! CollectionViewCell cell.backgroundColor = UIColor.gray return cell }
9단계 − 응용 프로그램을 실행하고 세로로 스크롤하여 컬렉션 보기를 가로로 스크롤할 수 있습니다.
스크롤 방향 속성을 가로로 변경합니다.
완전한 코드
import UIKit class ViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource { @IBOutlet var collectionView: UICollectionView! override func viewDidLoad() { super.viewDidLoad() } func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return 500 } func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { let cell: UICollectionViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! CollectionViewCell cell.backgroundColor = UIColor.gray return cell } }