Koyami 日历未正确显示未来日期
Posted
技术标签:
【中文标题】Koyami 日历未正确显示未来日期【英文标题】:Future date not Properly Displayed from Koyami Calendar 【发布时间】:2018-02-17 06:56:31 【问题描述】:我是通过以下链接推荐的
https://github.com/shoheiyokoyama/Koyomi#demo_app
我想从日历中选择日期(startDate 到 endDate)。如果我使用 Koyami 日历,请从以下方法中选择日期。
func koyomi(_ koyomi: Koyomi, didSelect date: Date?, forItemAt indexPath: IndexPath)
print("You Selected: \(date!)")
如果我首先使用此功能,我选择开始日期示例(20.2.2018)并选择结束日期示例(18.2.2018)。输出将正确显示。因为我从 startDate 中选择了上一个日期,所以我的控制台输出是
You Selected: 2018-02-20 18:30:00 +0000
You Selected: 2018-02-18 18:30:00 +0000
如果我首先使用相同的功能,我选择 startDate 示例(20.2.2018)和 endDate 示例(22.2.2018)。输出将正确显示。因为我从 startDate 选择未来日期,所以我的控制台输出是
You Selected: 2018-02-20 18:30:00 +0000
You Selected: 2018-02-20 18:30:00 +0000
我的问题是当我为 endDate 选择未来日期时,startDate 和 endDate 将显示相同的日期。但我想正确显示我的 ecpectd 输出是
You Selected: 2018-02-20 18:30:00 +0000
You Selected: 2018-02-22 18:30:00 +0000
我该如何解决这个问题。请帮助我!
【问题讨论】:
添加一些代码来理解问题。 谢谢您的回复先生。我正在使用 github 项目 我正在添加github链接先生 分步解释你的问题。像 1. 我选择 endDate 的未来日期未来日期。 2. 然后是 startDate 的未来日期。等 选择结束日期时。将显示开始日期和结束日期相同的日期 【参考方案1】:您应该阅读 koyomi 的文档。默认情况下,它在sequence
模式下进行多项选择,使用multiple
模式。它将为您提供 2 个不同的选择日期。
koyomi.selectionMode = .multiple(style: .background) //.sequence(style: .semicircleEdge)
更新:使用相同的选择模式 = .sequence(style: .semicircleEdge)
并从方法获取开始和结束日期:
在此开始日期为date
,结束日期为toDate
func koyomi(_ koyomi: Koyomi, shouldSelectDates date: Date?, to toDate: Date?, withPeriodLength length: Int) -> Bool
print("Start date \(date)")
print("End date : \(toDate)")
if length > invalidPeriodLength
print("More than \(invalidPeriodLength) days are invalid period.")
return false
return true
【讨论】:
选择模式没问题。问题是日期的 didSelect 方法。 didSelect 方法日期显示不正确先生 在 didSelect 方法中,StartDate 和 End Date 显示的日期相同。刚刚打印了控制台 您需要 2 个日期。右(开始日期 - 第一次点击和结束日期) @VigneshJeyaraj 查看更新答案。使用shouldSelectDates
获取两个日期。以上是关于Koyami 日历未正确显示未来日期的主要内容,如果未能解决你的问题,请参考以下文章