Отключить выбор будущих дат в FScalendar swift - PullRequest
0 голосов
/ 11 февраля 2020

Пожалуйста, помогите мне! Я использую https://github.com/WenchaoD/FSCalendar в моем проекте. Я хочу отключить некоторые даты после текущей даты. Я хочу, чтобы только 28 дат были включены после текущих дней. Возможно ли это?

Ответы [ 2 ]

1 голос
/ 17 февраля 2020

Да, вы можете установить количество дней, для этого вы должны установить минимальную и максимальную дату FScalander, и для этого вам нужно внедрить приведенный ниже код в ваш контроллер представления.

extension ViewController:FSCalendarDataSource
{
    func minimumDate(for calendar: FSCalendar) -> Date {
        return Date()
    }
    func maximumDate(for calendar: FSCalendar) -> Date {
        var dateComponents:DateComponents = DateComponents()
        dateComponents.day = 28
        let currentCalander:Calendar = Calendar.current
        return currentCalander.date(byAdding:dateComponents, to: Date())!
    }
}

и Убедитесь, что не забыли подключить источник данных FSCalander в вашем viewcontroller

0 голосов
/ 12 февраля 2020

Я думаю, что вы хотите разрешить выбор некоторых дат, вы можете использовать следующий делегат

extension YourView: FSCalendarDelegate, FSCalendarDataSource {

    func calendar(_ calendar: FSCalendar, shouldSelect date: Date, at monthPosition: FSCalendarMonthPosition) -> Bool {
        return yourDates.contains(where: { $0.startOfDay == date.startOfDay })
    }

}
extension Date {
    var startOfDay: Date {
        return Calendar.current.startOfDay(for: self)
    }
}
...