CalendarKit 是一个用于 iOS 和 Mac Catalyst 的 Swift 日历 UI 库。它开箱即用,外观类似于苹果日历应用,同时允许根据需要进行自定义。CalendarKit 由多个模块组成,这些模块可以一起使用或独立使用。
如果您有关于如何在应用程序中使用 CalendarKit 的编程问题,请创建一个带有问题标签的新 GitHub Issue。
查看示例应用以供参考。
从模板创建新的 Issue来报告错误或请求新功能。
要使用 CocoaPods 试用 CalendarKit,请在终端中输入以下命令:
pod try CalendarKit
CalendarKit 可以通过 Swift Package Manager 或 CocoaPods 安装。
安装 CalendarKit 的首选方式是通过 Swift Package Manager。
https://github.com/richardtop/CalendarKit.git)并点击 Next。要安装它,请在您的 Podfile 中添加以下行:
pod 'CalendarKit'
DayViewControllerEventDataSource 协议以显示事件。CalendarKit 要求 EventDataSource 返回一个符合 EventDescriptor 协议的对象数组,指定显示特定事件所需的所有信息。您可以自由使用默认的 Event 类作为模型,或创建自己的符合 EventDescriptor 协议的类。
// 返回特定日期的事件描述符数组 override func eventsForDate(_ date: Date) -> [EventDescriptor] { var models = myAppEventStore.getEventsForDate(date) // 从存储/API获取事件(模型) var events = [Event]() for model in models { // 创建新的EventView let event = Event() // 指定DateInterval event.dateInterval = DateInterval(start: model.startDate, end: model.endDate) // 将信息添加到字符串数组中:事件标题、副标题、地点 var info = [model.title, model.location] info.append("\(datePeriod.beginning!.format(with: "HH:mm")) - \(datePeriod.end!.format(with: "HH:mm"))") // 通过格式化所有需要显示的信息来设置事件的"text"值 event.text = info.reduce("", {$0 + $1 + "\n"}) events.append(event) } return events }
在接收到特定日期的事件数组后,CalendarKit将处理视图布局和显示。
要响应用户输入,请重写DayViewDelegate的方法,例如:
override func dayViewDidSelectEventView(_ eventView: EventView) { print("事件已被选中: \(eventview.data)") } override func dayViewDidLongPressEventView(_ eventView: EventView) { print("事件已被长按: \(eventView.data)") }
CalendarKit支持本地化,并使用iOS默认区域设置来显示月份和日期名称。每周的第一天也是根据iOS区域设置选择的。
<img src="https://yellow-cdn.veclightyear.com/0a4dffa0/49693f3c-46e4-4adc-a04f-58fd7c81bd68.PNG" alt="德语" width="320"><img src="https://yellow-cdn.veclightyear.com/0a4dffa0/18c380a3-3c6f-46da-81c0-b93aa4258485.PNG" alt="挪威语" width="320">
默认情况下,CalendarKit的外观类似于苹果日历应用,并完全支持深色模式。如果需要,可以轻松自定义CalendarKit的外观。应用自定义样式的步骤如下:
CalendarStyle对象(或复制现有的)CalendarStyle调用updateStyle方法。let style = CalendarStyle() style.backgroundColor = UIColor.black dayView.updateStyle(style)
<img src="https://yellow-cdn.veclightyear.com/0a4dffa0/3e8d3599-f584-412a-9018-4a8ece37bdd4.png" alt="浅色主题" width="320"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/53c1f06b-27d2-4739-a00c-8aa8d3a3e325.png" alt="深色主题" width="320">
当前正在开发的功能列表可以在issues页面查看。
在贡献之前,请查看指南和代码风格。
Richard Topchii
CalendarKit基于MIT许可证提供。有关更多信息,请参阅LICENSE文件。


免费创建高清无水印Sora视频
Vora是一个免费创建高清无水印Sora视频的AI工具


最适合小白的AI自动化工作流平台
无需编码,轻松生成可复用、可变现的AI自动化工作流

大模型驱动的Excel数据处理工具
基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、 公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。


AI辅助编程,代码自动修复
Trae是一种自适应 的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。


AI论文写作指导平台
AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。


AI一键生成PPT,就用博思AIPPT!
博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。


AI赋能电商视觉革命,一站式智能商拍平台
潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。


企业专属的AI法律顾问
iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。


稳定高效的流量提升解决方案,助力品牌曝光
稳定高效的流量提升解决方案,助力品牌曝光


最新版Sora2模型免费使用,一键生成无水印视频
最新版Sora2模型免费使用,一键生成无水印视频
最新AI工具、AI资讯
独家AI资源、AI项目落地

微信扫一扫关注公众号