[swift] FSCalendar에서 특정 날짜의 배경색 변경
FSCalendar는 iOS에서 달력을 표시하는 라이브러리로 많이 사용됩니다. 특정 날짜의 배경색을 변경하는 방법에 대해 알아보겠습니다.
import FSCalendar
class ViewController: UIViewController, FSCalendarDelegate, FSCalendarDataSource {
@IBOutlet weak var calendar: FSCalendar!
override func viewDidLoad() {
super.viewDidLoad()
// 날짜 선택 delegate
calendar.delegate = self
calendar.dataSource = self
}
func calendar(_ calendar: FSCalendar, appearance: FSCalendarAppearance, fillDefaultColorFor date: Date) -> UIColor? {
let selectedDate = // 체크하고자 하는 특정 날짜
let currentDate = // 현재 날짜
if Calendar.current.isDate(selectedDate, inSameDayAs: date) {
// 특정 날짜와 선택된 날짜가 같을 경우 배경색을 변경
return UIColor.red
} else if Calendar.current.isDate(currentDate, inSameDayAs: date) {
// 선택된 날짜와 현재 날짜가 같을 경우 배경색을 변경
return UIColor.blue
}
return nil
}
}
위의 코드는 FSCalendarDelegate 및 FSCalendarDataSource 프로토콜을 적용한 ViewController 클래스에서 사용하는 예시입니다.
calendar(_:, appearance:, fillDefaultColorFor:)
메서드는 달력의 각 날짜의 배경색을 변경할 때 사용됩니다. 이 메서드에서 선택하고자 하는 특정 날짜와 현재 날짜를 비교하여 원하는 배경색을 반환하도록 구현하면 됩니다.
위의 예시에서는 selectedDate
와 currentDate
변수를 사용하여 특정 날짜와 선택된 날짜, 그리고 현재 날짜를 비교합니다. 특정 날짜와 선택된 날짜가 같을 경우 UIColor.red
로 배경색을 변경하고, 선택된 날짜와 현재 날짜가 같을 경우 UIColor.blue
로 배경색을 변경합니다.
실제로 프로젝트에 적용하려면 selectedDate
와 currentDate
변수에 원하는 날짜 값을 설정해주어야 합니다.
FSCalendar의 기능을 더욱 심화시키고 싶은 경우에는 FSCalendar GitHub 페이지를 참고하면 도움이 됩니다.