如何在FSCalender中更改事件点颜色

时间:2017-12-29 17:01:04

标签: swift3 fscalendar

这是我的代码。我想改变点颜色,但我没有找到任何解决方案。谢谢

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


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

        return UIColor.red

}

以下是这些事件点的示例图片:

Image of the dots in the calender

1 个答案:

答案 0 :(得分:1)

此示例取自here。基本上你只需使用给定的方法,检查事件类型或类似的东西,并返回你喜欢的颜色。

//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个示例方法。我添加了示例中的字段,以获得这样一个方法的“完整”示例。

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中的链接示例类。这个例子非常自我解释。