0

我根据要求在我的应用程序中使用 FSCalendar 我实现了一切,但面临一个问题。当我使用按钮切换月份时,日历会滚动到下个月或上个月,但它会显示 1 个自动选择的日期,这是不需要的。我按下 按钮的第一张图片。

这里它显示自动选择的日期。

 @IBAction func nextMonth(_ sender: UIButton){
    let t = calendar.currentPage.addingTimeInterval(24*60*60)
    let components = globalCurrentCalendar.dateComponents([.year, .month, .day], from: t)
    yearParam =  String(components.year!)
    monthParam = String(components.month!)
    let mnth = components.month! + 1
    monthParam = String(mnth)
    let date = Calendar.current.date(byAdding: .calendar, value: 1, to: t)
    monthScrollDate = date!
    self.calendar.select(self.formater.date(from:ConstantFile.dateToStringTemp(date: date!))!)
}
4

2 回答 2

0

尝试这个 -

func calendar(_ calendar: FSCalendar, didSelect date: Date, at monthPosition: FSCalendarMonthPosition) {
        if monthPosition == .previous || monthPosition == .next {
        calendar.setCurrentPage(date, animated: true)
    }
}
于 2018-09-03T10:16:41.297 回答
0

您需要在下个月执行以下步骤。

  1. 获取CalendarView当前页面。
  2. CalendarView在currentPage中创建 1 个添加 1 个月的日期。
  3. CalendarView按新创建的日期设置currentPage。

下个月

let currentMonth = self.calendarVW.currentPage
let nextMonth: Date? = gregorian.date(byAdding: .month, value: 1, to: currentMonth, options: [])
self.calendarVW.setCurrentPage(nextMonth!, animated: true)

上个月

let currentMonth = self.calendarVW.currentPage
let previousMonth: Date? = gregorian.date(byAdding: .month, value: -1, to: currentMonth, options: [])
self.calendarVW.setCurrentPage(previousMonth!, animated: true)
于 2018-09-04T05:22:07.347 回答