728x90
반응형
1. ViewController 연결
…ViewController.swift 생성 후
스토리보드의 ViewController에서
Custom Class 의 Class 와
Identity의 Storyboard ID 를 수정한다
1.1. 최초 로딩 관련 함수
viewWillAppear → viewDidLoad → viewDidAppear
<swift />
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// print("viewWillAppear")
}
override func viewDidLoad() {
super.viewDidLoad()
// print("viewDidLoad")
reload()
// Do any additional setup after loading the view.
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
// print("viewDidAppear")
}
2. CollectionView 셀 데이터
<swift />
extension [앱id]ViewController: UICollectionViewDataSource{
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return stockList.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "[앱id]CollectionViewCell", for: indexPath)
as? [앱id]CollectionViewCell
else { return UICollectionViewCell() }
let [앱id] = [앱id]List[indexPath.item]
cell.configure(stock)
return cell
}
}
3. CollectionView 셀 배치
<swift />
extension [앱id]ViewController: UICollectionViewDelegateFlowLayout{
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: collectionView.bounds.width, height: 80)
}
}
4. CollectionViewCell 자동 호출 함수
<swift />
override func awakeFromNib() {
super.awakeFromNib()
}
5. CollectionViewCell 데이터 설정 함수
<swift />
func configure(_ chat: Chat) {
thumbnailImageView.image = UIImage(named: chat.name)
nameLabel.text = chat.name
chatLabel.text = chat.chat
dateLabel.text = formattedDateString(dateString: chat.date)
}
6. 그리드 분할 관련 초기화
- 설정이 되어 있지 않으면 분할되지 않을 수 있음
<swift />
if let flowlayout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout {
flowlayout.estimatedItemSize = .zero
}
7. CollectionView 그리드 크기 설정
<swift />
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: collectionView.bounds.width, height: 100)
}
8. 그리드 아이템 클릭 관련 함수
<swift />
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let framework = list[indexPath.item]
print(">>> selected: \(framework.name)")
}
728x90
반응형
'iOS' 카테고리의 다른 글
[ iOS ] Modal (0) | 2023.02.24 |
---|---|
[ iOS ] CollectionView - 3 (0) | 2023.02.22 |
[ iOS ] PagingView (0) | 2023.02.20 |
[ iOS ] CollectionView - 2 (0) | 2023.02.17 |
[ iOS ] Assistant 모드 (0) | 2023.02.13 |