Reputation: 150
I am using FSCalendar to add calendar UI in my project. But I am unable to find any solution to change bg color of some selected dates. Can anyone suggest me how change color of selected dates in FSCalendar in swift 3?
import FSCalendar
fileprivate weak var calendar: FSCalendar!
override func viewDidLoad() {
super.viewDidLoad()
// In loadView or viewDidLoad
let calendar = FSCalendar(frame: CGRect(x: 0, y: 0, width: 320, height: 300))
calendar.dataSource = self
calendar.delegate = self
view.addSubview(calendar)
self.calendar = calendar
// Do any additional setup after loading the view.
}
Upvotes: 3
Views: 8126
Reputation: 753
Please follow the steps.
1). Add delegate FSCalendarDelegateAppearance
2). Below is my reference array. You should have yours
let selectedDates = ["2017/01/08", "2017/01/06", "2017/01/17"]
3). Add your date formatter
fileprivate lazy var dateFormatter1: DateFormatter = {
let formatter = DateFormatter()
formatter.dateFormat = "yyyy/MM/dd"
return formatter
}()
3). select the dates using
calendar.select(self.dateFormatter1.date(from: "2017/01/08"))
4). Add delegate method for color change.
func calendar(_ calendar: FSCalendar, appearance: FSCalendarAppearance, fillSelectionColorFor date: Date) -> UIColor? {
let dateString = self.dateFormatter1.string(from: date)
if self.selectedDates.contains(dateString) {
return UIColor.green
}
return appearance.selectionColor
}
5). Now Run it. :)
Upvotes: 5