禁用FScalendar swift中的未来日期选择

时间:2017-03-13 09:58:19

标签: ios swift fscalendar

我在我的项目中使用https://github.com/WenchaoD/FSCalendar。 MaximumSelectedDate是一个只读属性。那么如何禁用未来日期?

4 个答案:

答案 0 :(得分:6)

您应该使用委托方法来解决此问题

func maximumDate(for calendar: FSCalendar) -> Date {
    return Date()
}

答案 1 :(得分:1)

解决方法可能是编辑FSCalendar方法文件。首先创建一个bool变量,比如isAllowedToLimitFutureDates和一个字符串变量maxValidFutureDateAsString,然后将this link的第172行更改为:

 if(!isAllowedToLimitFutureDates)
 {
     _maximumDate = [self.formatter dateFromString:@"2099-12-31"];
 }
 else
 {
     _maximumDate = maxValidFutureDateAsString; // say "2017-03-13"
 }

因此,当您要限制设置日期isAllowedToLimitFutureDates = true时。

与第1707行类似的方法。

如果您无法编辑文件和已使用的POD,则可以自定义此控件并覆盖它们。

希望有所帮助!

答案 2 :(得分:0)

@Devraj答案是正确的,最小最大日期都有委托,您需要做的就是实施正确的日期(在您的情况下是后者) )在符合FSCalendarDelegate的控制器中,并且这样做。

func maximumDateForCalendar(calendar: FSCalendar) -> NSDate { return NSDate() // NSDate of your choosing here }

答案 3 :(得分:0)

for Swift 3

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

  let today   = dateFormatter2.string(from: calendar.selectedDate!)
  let dateObj = dateFormatter2.date(from: today)

  if dateObj! > calendar.today! {
     // Your logic here
  }
相关问题