如何更改 FSCalendar 中的事件点颜色

How to change Event Dot Color in FSCalender

这是我的代码。我正在尝试更改点颜色,但没有找到任何解决方案。谢谢

func calendar(_ calendar: FSCalendar, numberOfEventsFor date: Date) -> Int {


    return 1;
}
func calendar(_ calendar: FSCalendar, appearance: FSCalendarAppearance, eventColorFor date: Date) -> UIColor? {

        return UIColor.red

}

这是这些事件点的示例图像:

这个例子来自here。基本上你只需使用给定的方法,检查事件类型或类似的东西,然后 return 你喜欢的颜色。

//Used by one of the example methods
var datesWithEvent = ["2015-10-03", "2015-10-06", "2015-10-12", "2015-10-25"]
var datesWithMultipleEvents = ["2015-10-08", "2015-10-16", "2015-10-20", "2015-10-28"]

//Used in one of the example methods
fileprivate lazy var dateFormatter2: DateFormatter = {
    let formatter = DateFormatter()
    formatter.dateFormat = "yyyy-MM-dd"
    return formatter
}()

完整的例子太长嵌入了,所以我只拿了2个例子方法。我添加了示例中的字段,以提供一个 "complete" 示例,说明这种方法的外观。

func calendar(_ calendar: FSCalendar, appearance: FSCalendarAppearance, eventColorFor date: Date) -> UIColor? {
     //Do some checks and return whatever color you want to.
     return UIColor.purple  
}

func calendar(_ calendar: FSCalendar, appearance: FSCalendarAppearance, eventDefaultColorsFor date: Date) -> [UIColor]? {
    let key = self.dateFormatter2.string(from: date)
    if self.datesWithMultipleEvents.contains(key) {
        return [UIColor.magenta, appearance.eventDefaultColor, UIColor.black]
    }
        return nil
 }

为了更好地理解,请查看 Github 中的链接示例 class。这个例子不言自明。