Swift软件包 · v0.1.0

KLCalendarLanes

为日历网格中的跨日全天事件条分配确定性的轨道。

KLCalendarLanes是不依赖UI的日历网格布局引擎。它使用提供的 `Calendar` 归一化日期,在行边界拆分事件条,并返回轨道、溢出事件和按天查询的占用信息。

支持平台
iOS 17+ · macOS 14+
开发工具
Swift 6.0+
许可证
MIT
第三方依赖

功能

  • 使用 `Calendar` 归一化跨日范围
  • 在行边界生成带首尾标记的片段
  • 确定性地分配轨道并记录溢出事件
  • 按天查询被范围事件占用的轨道数

不包含的功能

软件包只计算范围事件条的几何信息。标题、颜色、当天事件行、视图和宿主事件模型都由接入应用负责。

通过SwiftPM安装

Package.swiftSwift
.package(url: "https://github.com/KoenLee1023/KLCalendarLanes.git", from: "0.1.0")

使用方法

接入示例Swift
let layout = KLCalendarLaneEngine().layout(
    events: events,
    in: week,
    configuration: .init(calendar: calendar, maximumLaneCount: 2)
)
let segments = layout.segments(startingOn: day)
KLCalendarLaneEngine

为可见的半开网格区间计算 `KLCalendarLaneLayout`。

KLCalendarLaneConfiguration

定义 `Calendar`、每行列数、轨道上限和结束边界语义。

KLCalendarLaneLayout

提供行内片段、确定性的溢出ID和按天查询方法。

示例App

MonthLane

使用 `Calendar` 归一化跨日范围 · 在行边界生成带首尾标记的片段

LaneStressLab

确定性地分配轨道并记录溢出事件 · 按天查询被范围事件占用的轨道数