공식 문서에 따르면 모든 앱에는 앱 관련 메시지에 응답하기 위한
앱 대리자 개체가 있어야 한다고 한다.
UICollectionView의 Delegate 이란 collectionView에서 항목과의
사용자 상호 작용을 관리하는 데 사용하는 개체에서 채택한 메서드라고 한다.
아래 코드는 ViewController 에서
delegate protocal을 채택했다고 알려주고
그 아래에 채택한 프로토콜을 구현해보았고,
내용은 셀의 사이즈를 나타낸 것이다.
import UIKit
class StockRankViewController: UIViewController {
let stockList: [StockModel] = StockModel.list
@IBOutlet weak var CollectionView: UICollectionView!
// Data, Presentation, Layout
// Data : 어떤 data 사용할것인가 -> StockModel 파일에 저장한 것들의 리스트(stockList)로 사용
// Presentation : 셀을 어떻게 표현할 것인가
// Layout : 셀을 어떻게 배치할것인가
override func viewDidLoad() {
super.viewDidLoad()
CollectionView.dataSource = self
CollectionView.delegate = self
}
}
// delegate protocal 구현
extension StockRankViewController: UICollectionViewDelegateFlowLayout {
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
// width = collectionView
// height = 80정도
return CGSize(width: collectionView.bounds.width, height: 80)
}
}
참고자료 및 자세한내용
https://developer.apple.com/documentation/uikit/uicollectionviewdelegate
https://kasroid.github.io/posts/ios/20201010-uikit-delegate-pattern/
https://developer.apple.com/documentation/uikit/uiapplication/1622936-delegate
https://stickode.tistory.com/373