【问题标题】:Disable some future dates selection in FScalendar swift在 FScalendar swift 中禁用某些未来日期选择
【发布时间】:2020-02-11 20:23:36
【问题描述】:

请帮帮我!我在我的项目中使用https://github.com/WenchaoD/FSCalendar。我想禁用当前日期之后的某些日期。我只想在当天之后启用 28 个日期。有可能吗?

【问题讨论】:

    标签: ios swift date disable fscalendar


    【解决方案1】:

    是的,您可以设置天数,为此您必须设置 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 的数据源

    【讨论】:

    • 是的,很有帮助。
    【解决方案2】:

    我认为您想启用某些日期可选择您可以使用以下委托

    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)
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多