Я использую FSCalendar для отображения календаря в моем приложении. Сначала я использовал fillDefaultColorFor
для отображения событий в цвете так:
func calendar(_ calendar: FSCalendar, appearance: FSCalendarAppearance, fillDefaultColorFor date: Date) -> UIColor? {
let dateString2 = self.dateFormatter2.string(from: date)
//set dates with events to yellow
if self.datesArray.contains(dateString2){
return UIColor.yellow
}
return nil
}
Но теперь я хочу отображать события, используя точки вместо этого:
func calendar(_ calendar: FSCalendar, numberOfEventsFor date: Date) -> Int {
let dateString2 = self.dateFormatter2.string(from: date)
print("Dates array at numberOfEvents: ", datesArray)
print("DateString2: ", dateString2)
//render dots if there is an event on that day
if self.datesArray.contains(dateString2){
return 1
}else{
return 0
}
}
Однако приведенный выше код не отображает никаких точек в календаре. Чего-то не хватает в методе numberOfEvents
?
РЕДАКТИРОВАТЬ: Для проверки numberOfEvents
я добавил массив дат, например:
var testDates = ["2018-09-08", "2018-09-16", "2018-09-20", "2018-09-28"]
Так что numberOfEvents
выглядит так:
func calendar(_ calendar: FSCalendar, numberOfEventsFor date: Date) -> Int {
let dateString = self.dateFormatter2.string(from: date)
print("datesArray: ", datesArray)// this is in "yyyy-MM-dd" format
print("Date String: ", dateString)// displays date in "yyyy-MM-dd" format
print("testDates: ", testDates)
if self.datesArray.contains(dateString){
return 1
}
if testDates.contains(dateString){
return 3
}
return 0
}
Когда я запускаю приложение, в календаре по-прежнему не отображаются точки событий. Чего-то не хватает в этом коде? Какую функцию я пропустил или неправильно реализовал?