首页 > 解决方案 > 我想使用 JTAppleCalender 库显示一个简单的日历,但它显示的是一个空屏幕

问题描述

import UIKit
import JTAppleCalendar
class ViewController: UIViewController, JTAppleCalendarViewDelegate, JTAppleCalendarViewDataSource {


    let formatter = DateFormatter()

    override func viewDidLoad() {
        super.viewDidLoad()

    }



    func calendar(_ calendar: JTAppleCalendarView, willDisplay cell: JTAppleCell, forItemAt date: Date, cellState: CellState, indexPath: IndexPath) {

        let myCustomCell = cell as! JTCustomCell
        sharedFunctionToConfigureCell(myCustomCell: myCustomCell, cellState: cellState, date: date)

    }

    func calendar(_ calendar: JTAppleCalendarView, cellForItemAt date: Date, cellState: CellState, indexPath: IndexPath) -> JTAppleCell {
        let cell = calendar.dequeueReusableJTAppleCell(withReuseIdentifier: "JTCustom", for: indexPath) as! JTCustomCell
        self.calendar(calendar, willDisplay: cell, forItemAt: date, cellState: cellState, indexPath: indexPath)
        cell.lblDate.text = cellState.text

        return cell
    }

    func configureCalendar(_ calendar: JTAppleCalendarView) -> ConfigurationParameters {
        formatter.dateFormat = "yyyy MM dd"
        formatter.timeZone = Calendar.current.timeZone
        formatter.locale = Calendar.current.locale

        let startDate = formatter.date(from: "2019 02 02 ")!
        let endDate = formatter.date(from: "2020 01 01")!

        let paramaters = ConfigurationParameters(startDate: startDate, endDate: endDate)
        return paramaters
    }

    func sharedFunctionToConfigureCell(myCustomCell: JTCustomCell, cellState: CellState, date: Date) {
        myCustomCell.lblDate.text = cellState.text

    }


}
//ref: JTAppleCalenderLibray 7.1.6

标签: iosswiftxcodeuicollectionviewcelljtapplecalendar

解决方案


确保在 Identity Inspector 中将集合类设置为 JTAppleCalendarView 并设置委托 ibCalendarDataSource 和 ibCalendarDelegate

如果您的日历仍然显示为空白,请在 viewDidLayoutSubviews() 中重新加载

override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        calendarView.reloadData()
    }

推荐阅读