일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- weak var
- Protocol
- Required Reason API
- Startign Assignments
- 단일 책임원칙
- xcode로 날씨앱 만들기
- font book
- AnyObject
- 러닝기록앱
- CoreLocation
- addannotation
- weatherKit
- CLLocationManagerDelegate
- UICollectionViewFlowLayout
- 클로저의 캡슐화
- dispatchsource
- 한국어 개인정보처리방침
- WeatherManager
- 영문 개인정보처리방침
- swift
- 서체관리자
- RunningTimer
- App Store Connect
- 러닝타이머
- Timer
- MKMapItem
- MKMapViewDelegate
- Xcode
- UIAlertAction
- SwiftUI Boolean 값
Archives
- Today
- Total
VesselWheel
CollectionView 본문
//
// ViewController.swift
// UICollectionView
//
// Created by Jason Yang on 12/14/23.
//
import UIKit
class ViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout {
let collectionView = UICollectionView(frame: .zero, collectionViewLayout: UICollectionViewFlowLayout())
let data = ["Item 1", "Item 2", "Item 3"]
override func viewDidLoad() {
super.viewDidLoad()
collectionView.frame = view.bounds
collectionView.dataSource = self
collectionView.delegate = self
collectionView.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "Cell")
collectionView.backgroundColor = .white
view.addSubview(collectionView)
}
// UICollectionViewDataSource
/* [필수] 행 수를 보고합니다. */
// section: 컬렉션뷰의 section을 나타내는 식별자 입니다. 이를 바탕으로 해당 섹션의 count를 반환합니다.
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return data.count
}
/* [필수] 각 행에 대한 셀을 제공합니다. */
// indexPath: 컬렉션뷰에서 Row(행)을 찾는 경로입니다. 이를 바탕으로 적절한 cell을 반환합니다.
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath)
cell.backgroundColor = .blue
return cell
}
// UICollectionViewDelegate
/* 행이 선택되었을 때 호출 */
// indexPath: 컬렉션뷰에서 선택된 Row(행)을 찾는 경로입니다. 이를 바탕으로 어떤 행이 선택되었는지 파악할 수 있습니다.
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
print("Selected: \(data[indexPath.row])")
collectionView.deselectItem(at: indexPath, animated: true)
}
// UICollectionViewDelegateFlowLayout
/* 셀의 크기를 보고합니다 */
// collectionViewLayout: 컬렉션뷰에서 사용된 레이아웃입니다. 행의 크기를 반환할 때 참고할 수 있습니다.
// indexPath: 컬렉션뷰에서 선택된 Row(행)을 찾는 경로입니다. 이를 바탕으로 어떤 행의 크기를 반환할지 판단할 수 있습니다.
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: 100, height: 100)
}
}
'Xcode Study' 카테고리의 다른 글
[Trouble Shooting] 뷰 클래스 간 데이터 연결하기 (0) | 2023.12.29 |
---|---|
Starting Assignments 작성하기 (feat. 키오스크 앱 프로젝트) (0) | 2023.12.26 |
Counter앱 만들기 (0) | 2023.12.13 |
디버깅 (0) | 2023.12.13 |
UIPickerView와 protocol & delegate (0) | 2023.12.12 |