[swift] FSCalendar에서 특정 날짜의 이벤트 액션 전화 걸기 설정

FSCalendar은 iOS에서 매우 유용한 캘린더 라이브러리입니다. 이 라이브러리를 사용하여 특정 날짜를 선택했을 때 전화를 걸 수 있는 액션을 설정하는 방법을 알아보겠습니다.

1. 전화 걸기 기능 추가

먼저, FSCalendar의 이벤트를 처리할 수 있는 FSCalendarDelegate를 구현해야 합니다. 이렇게 하면 선택한 날짜에 대한 이벤트를 처리할 수 있습니다.

class CalendarViewController: UIViewController, FSCalendarDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        let calendar = FSCalendar(frame: CGRect(x: 0, y: 0, width: 320, height: 300))
        calendar.delegate = self
        self.view.addSubview(calendar)
    }

    func calendar(_ calendar: FSCalendar, didSelect date: Date, at monthPosition: FSCalendarMonthPosition) {
        // 선택한 날짜에 대한 액션을 처리합니다.
    }
  
}

2. 전화 걸기 액션 추가

전화 걸기 액션을 추가하기 위해 UIApplication.shared.open(_:) 메소드를 사용합니다. 이 메소드를 호출하면 전화 앱이 열리고 선택한 전화 번호로 전화를 걸 수 있습니다.

func calendar(_ calendar: FSCalendar, didSelect date: Date, at monthPosition: FSCalendarMonthPosition) {
    let phoneNumber = "010-1234-5678" // 전화를 걸고자 하는 전화 번호
    
    if let url = URL(string: "tel://\(phoneNumber)") {
        UIApplication.shared.open(url)
    }
}

3. 전화 걸기 액션을 특정 날짜에 매핑

이제 선택한 날짜에 대한 이벤트 액션으로 전화 걸기 액션을 매핑해야 합니다. 다음은 특정 날짜에 대한 전화 걸기 액션을 설정하는 예입니다.

func calendar(_ calendar: FSCalendar, didSelect date: Date, at monthPosition: FSCalendarMonthPosition) {
    let dateFormat = DateFormatter()
    dateFormat.dateFormat = "yyyy-MM-dd"
    
    let selectedDate = dateFormat.string(from: date)
  
    if selectedDate == "2022-01-01" { // 특정 날짜 (2022년 1월 1일)에 대한 액션 처리
        let phoneNumber = "010-1234-5678" // 전화를 걸고자 하는 전화 번호
    
        if let url = URL(string: "tel://\(phoneNumber)") {
            UIApplication.shared.open(url)
        }
    }
}

위의 예제에서는 2022년 1월 1일에 대한 전화 걸기 액션이 설정되었습니다. 물론 원하는 날짜와 전화 번호로 설정을 변경할 수 있습니다.

FSCalendar를 사용하여 특정 날짜의 이벤트 액션으로 전화 걸기 기능을 추가하는 방법에 대해 알아보았습니다. 이를 활용하여 앱에서 유용한 기능을 구현할 수 있습니다.