0

如何在 Fscalender 上显示事件?

这是我从 api 调用中获取事件的代码。

func SetUpUIDashBoardCalenderdata()
{
    APIManager.sharedInstance.FetchParentDashboardCalenderDataFromURL(){(dashBoardCalenderJson)-> Void in
        let calenderVar = JSON(dashBoardCalenderJson)
        print("calenderVar----",calenderVar)
        let info = calenderVar["dates"].rawString()
        let jsonData = info?.data(using: .utf8)!
        let dictionary = try? JSONSerialization.jsonObject(with: jsonData!, options: [])  as! Array<Any>
        print("dictionary",dictionary)

    }
}
4

1 回答 1

0

你应该实现FSCalendarDataSource协议。

请看我的例子:

let events = [Date]()

fileprivate lazy var dateFormatter: DateFormatter = {
    let formatter = DateFormatter()
    formatter.dateFormat = "yyyy/MM/dd"
    return formatter
}()

func calendar(_ calendar: FSCalendar, numberOfEventsFor date: Date) -> Int {
    let dayFormatted = dateFormatter.string(from: date)
    var counter = 0
    for event in events{
        let day = dateFormatter.string(from: event)
        if dayFormatted == day{
            counter += 1
        }
    }
    return counter
}

或更短:

func calendar(_ calendar: FSCalendar, numberOfEventsFor date: Date) -> Int {
    let dayFormatted = dateFormatter.string(from: date)
    return events.filter({ dateFormatter.string(from: $0) == dayFormatted }).count
}
于 2017-10-11T11:42:33.277 回答