如何 select 日历视图中的日期
How to select Date in the CalendarView
嗨,JTAppleCalendar 中的 newBiew。
我已经按照这个 link 创建基于 JTAppleCalendar 的日历。
https://www.youtube.com/watch?v=CQNotydm58s&index=6&list=PLpqJf39XekqyUG7dxcqGO0JNprryysv9Q
我不知道如何在用户按日历上的日期后获取日期。
这里是代码:
在 didSelectDate 中。日期return总是晚一天??
这就是我想要实现的。当用户点击日历上的日期时,我想获取日期并使用此日期从服务器请求数据,
extension MyCalendar: JTAppleCalendarViewDataSource, JTAppleCalendarViewDelegate {
func configureCalendar( _ calendar:JTAppleCalendarView) ->ConfigurationParameters{
formatter.dateFormat = "yyyy MM dd"
formatter.timeZone = Calendar.current.timeZone
formatter.locale = Calendar.current.locale
let startDate = formatter.date(from: "2017 01 01")!
let endDate = formatter.date(from: "2027 12 31")!
let parameters = ConfigurationParameters(startDate : startDate, endDate: endDate)
return parameters
}
func calendar( _ calendar: JTAppleCalendarView, cellForItemAt date: Date, cellState: CellState, indexPath: IndexPath) -> JTAppleCell{
let cell = calendar.dequeueReusableJTAppleCell(withReuseIdentifier: "CustomCell", for: indexPath) as! CustomCell
cell.dateLabel.text = cellState.text
configureCell(cell:cell, cellState: cellState)
return cell
}
//------------ selected item
func calendar( _ calendar: JTAppleCalendarView, didSelectDate date: Date, cell:JTAppleCell?, cellState:CellState){
// cell is option
configureCell(cell: cell, cellState: cellState)
//prolem:
let strdate = cellState.date
}
func calendar( _ calendar: JTAppleCalendarView, didDeselectDate date: Date, cell:JTAppleCell?, cellState:CellState){
// cell is option
configureCell(cell: cell, cellState: cellState)
}
func calendar(_ calendar: JTAppleCalendarView, didScrollToDateSegmentWith visibleDates: DateSegmentInfo) {
setupCalendarView(dateSegment: visibleDates)
}
}
请帮忙,
谢谢
找到答案 in this github issue。永远不要看 xcode 控制台来查看正确的日期。打印命令以及日期的 XCode 显示都有自己的格式,可能与您所在的时区不同。由于格式错误,您仅在视觉上看到的日期 "looks" 不正确。要在 iOS 中正确显示日期,请始终使用 DateForamatter。我在上面发布的 link 为您解释了它。此问题存在于您使用的任何 iOS 日历库中。
嗨,JTAppleCalendar 中的 newBiew。 我已经按照这个 link 创建基于 JTAppleCalendar 的日历。 https://www.youtube.com/watch?v=CQNotydm58s&index=6&list=PLpqJf39XekqyUG7dxcqGO0JNprryysv9Q
我不知道如何在用户按日历上的日期后获取日期。
这里是代码:
在 didSelectDate 中。日期return总是晚一天??
这就是我想要实现的。当用户点击日历上的日期时,我想获取日期并使用此日期从服务器请求数据,
extension MyCalendar: JTAppleCalendarViewDataSource, JTAppleCalendarViewDelegate {
func configureCalendar( _ calendar:JTAppleCalendarView) ->ConfigurationParameters{
formatter.dateFormat = "yyyy MM dd"
formatter.timeZone = Calendar.current.timeZone
formatter.locale = Calendar.current.locale
let startDate = formatter.date(from: "2017 01 01")!
let endDate = formatter.date(from: "2027 12 31")!
let parameters = ConfigurationParameters(startDate : startDate, endDate: endDate)
return parameters
}
func calendar( _ calendar: JTAppleCalendarView, cellForItemAt date: Date, cellState: CellState, indexPath: IndexPath) -> JTAppleCell{
let cell = calendar.dequeueReusableJTAppleCell(withReuseIdentifier: "CustomCell", for: indexPath) as! CustomCell
cell.dateLabel.text = cellState.text
configureCell(cell:cell, cellState: cellState)
return cell
}
//------------ selected item
func calendar( _ calendar: JTAppleCalendarView, didSelectDate date: Date, cell:JTAppleCell?, cellState:CellState){
// cell is option
configureCell(cell: cell, cellState: cellState)
//prolem:
let strdate = cellState.date
}
func calendar( _ calendar: JTAppleCalendarView, didDeselectDate date: Date, cell:JTAppleCell?, cellState:CellState){
// cell is option
configureCell(cell: cell, cellState: cellState)
}
func calendar(_ calendar: JTAppleCalendarView, didScrollToDateSegmentWith visibleDates: DateSegmentInfo) {
setupCalendarView(dateSegment: visibleDates)
}
}
请帮忙,
谢谢
找到答案 in this github issue。永远不要看 xcode 控制台来查看正确的日期。打印命令以及日期的 XCode 显示都有自己的格式,可能与您所在的时区不同。由于格式错误,您仅在视觉上看到的日期 "looks" 不正确。要在 iOS 中正确显示日期,请始终使用 DateForamatter。我在上面发布的 link 为您解释了它。此问题存在于您使用的任何 iOS 日历库中。