Project Icon

CalendarKit

Swift日历UI库为iOS和Mac Catalyst提供Apple风格界面

CalendarKit是一个Swift日历UI库,为iOS和Mac Catalyst应用提供类似Apple日历的界面。该库支持自定义样式、本地化,并包含多个独立模块。开发者可集成CalendarKit创建日历应用,实现事件显示、用户交互和深色模式。CalendarKit通过Swift Package Manager或CocoaPods安装,支持iOS 11.0+和macOS 10.15+平台。

CalendarKit CalendarKit 许可证 SwiftPM 兼容 Swift 兼容性 平台兼容性 标签 版本

YouTube 频道订阅者 Twitter GitHub 关注者

Richard Topchii 的 Telegram

CalendarKit

CalendarKit 是一个用于 iOS 和 Mac Catalyst 的 Swift 日历 UI 库。它开箱即用,外观类似于苹果日历应用,同时允许根据需要进行自定义。CalendarKit 由多个模块组成,这些模块可以一起使用或独立使用。

教程

需要帮助?

如果您有关于如何在应用程序中使用 CalendarKit 的编程问题请创建一个带有问题标签的新 GitHub Issue

查看示例应用以供参考。

从模板创建新的 Issue来报告错误或请求新功能。

示例

视频

示例应用

要使用 CocoaPods 试用 CalendarKit,请在终端中输入以下命令:

pod try CalendarKit

安装

CalendarKit 可以通过 Swift Package Manager 或 CocoaPods 安装。

Swift Package Manager(Xcode 12 或更高版本)

安装 CalendarKit 的首选方式是通过 Swift Package Manager

  1. 在 Xcode 中,打开您的项目并导航到 FileSwift PackagesAdd Package Dependency...
  2. 粘贴仓库 URL(https://github.com/richardtop/CalendarKit.git)并点击 Next
  3. 对于 Rules,选择 Version (Up to Next Major) 并点击 Next
  4. 点击 Finish

将包依赖添加到您的应用

CocoaPods

要安装它,请在您的 Podfile 中添加以下行:

pod 'CalendarKit'

将 Pods 添加到 Xcode 项目

使用方法

  1. 继承 DayViewController
  2. 实现 EventDataSource 协议以显示事件。

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区域设置选择的。

德语挪威语

样式

默认情况下,CalendarKit的外观类似于苹果日历应用,并完全支持深色模式。如果需要,可以轻松自定义CalendarKit的外观。应用自定义样式的步骤如下:

  1. 创建一个新的CalendarStyle对象(或复制现有的)
  2. 通过更新属性来更改样式。
  3. 使用新的CalendarStyle调用updateStyle方法。
let style = CalendarStyle()
style.backgroundColor = UIColor.black
dayView.updateStyle(style)

浅色主题 深色主题

要求

  • iOS 11.0+, macOS (Catalyst) 10.15+
  • Swift 5.7+

贡献

当前正在开发的功能列表可以在issues页面查看。

在贡献之前,请查看指南和代码风格

作者

Richard Topchii

许可证

CalendarKit基于MIT许可证提供。有关更多信息,请参阅LICENSE文件。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

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

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号