SwiftでUICalendarViewを使ってカレンダーを表示する


SwiftでUICalendarViewを使ってカレンダーを表示する方法です。 iOS16からUICalendarViewというすごく便利なものが使えるようになりました。

UICalendarView

参考: How to use UICalendarView in iOS

ViewController.swift

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        view.backgroundColor = .white

        let selection = UICalendarSelectionSingleDate(delegate: self)

        let calendarView = UICalendarView()
        calendarView.frame = view.bounds
        calendarView.delegate = self
        calendarView.selectionBehavior = selection
        view.addSubview(calendarView)
    }
}

extension ViewController: UICalendarViewDelegate {}

extension ViewController: UICalendarSelectionSingleDateDelegate {
    func dateSelection(_ selection: UICalendarSelectionSingleDate, didSelectDate dateComponents: DateComponents?) {
        guard let dateComponents = dateComponents,
        let year = dateComponents.year,
        let month = dateComponents.month,
        let day = dateComponents.day else {
            return
        }
        print("yate: \(year), month: \(month), day: \(day)")
    }
}