Проблема в реализации FsCalendar iOS - PullRequest
0 голосов
/ 03 сентября 2018

Я использую 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!))!)
}

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Вам нужно выполнить следующие шаги в следующем месяце.

  1. Получить CalendarView currentPage.
  2. Создать 1 дату с добавлением 1 месяца в CalendarView currentPage.
  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)
0 голосов
/ 03 сентября 2018

Попробуйте это -

func calendar(_ calendar: FSCalendar, didSelect date: Date, at monthPosition: FSCalendarMonthPosition) {
        if monthPosition == .previous || monthPosition == .next {
        calendar.setCurrentPage(date, animated: true)
    }
}
...