【问题标题】:How to show a particular month and year in FSCalender?如何在 FSCalendar 中显示特定的月份和年份?
【发布时间】:2021-01-21 06:51:46
【问题描述】:

关于我之前的问题,我还面临一个问题。在视图控制器中,我有一个集合视图和 FSCalender。在 collectionview 中,有一个我从 API 获得的月份列表,关于那个月份,也有一年。

类似这样的:

单击月份后,我们会在左侧标签上获得相应的年份。

现在,我的问题是如何在日历上获取我单击的特定月份及其相应年份。 到目前为止,我已经尝试过这个来获得月份。

let index = indexPath.item + 10
let currentMonth = Calendar.current.component(.month, from: calender.currentPage)
let month = Calendar.current.date(byAdding: .month, value: index - currentMonth, to: calender.currentPage)
calender.setCurrentPage(month!, animated: true)

任何帮助将不胜感激。

【问题讨论】:

    标签: ios swift calendar


    【解决方案1】:

    假设您已经有了月份和年份值,您可以像这样更改日历上的任何日期组件:

    let month = 3 // March
    let year = 2022
    var dateComponents = Calendar.current.dateComponents([.year, .month, .day, .hour, .minute, .second], from: calender.currentPage)
    dateComponents.setValue(month, for: .month)
    dateComponents.setValue(year, for: .year)
    let date = Calendar.current.date(from: dateComponents)
    calender.setCurrentPage(date!, animated: true)
    

    如果您需要,任何其他日期组件也可以类似 - .day.hour.minute.second 等。

    【讨论】:

    • 它只给我当前的月份和年份。如果我想要 2022 年 3 月的日历怎么办
    • 为了更清楚,我更新了答案。您可以更改为您想要的任何值。我不确定您拥有的收藏视图中月/年之间的关系如何,也许您可​​以详细说明一下? 3月是节的第3项吗,是年对应节号吗?
    • 看,我正在从 API 获取 collectionview 中的数据。数据包含某个特定年份的某些特定月份(如 2022 年 3 月、2020 年 1 月、2021 年 12 月)。数据将来会发生变化,所以我不能给出一些静态值。我想要一个逻辑来检查单击了哪个月份和年份,然后在日历中显示该特定月份和年份。
    • 好的,我明白了。但是,如果不了解您如何实施其余部分,我们无法给您一个完整的答案。您需要一种方法来访问您在集合视图单元格/部分上显示的值,然后您可以使用它们来更改日历。您能否将这些详细信息添加到您的问题中?您如何填充集合视图的单元格/部分?您在数据源上使用的模型是什么?
    • 我获得了访问月份和年份值的方法。谢谢!
    猜你喜欢
    • 2022-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多