Swiftパッケージ · v0.1.0
KLCalendarLanes
カレンダーグリッドの複数日にまたがる終日イベントバーへ決定的にレーンを割り当てます。
KLCalendarLanesはUIに依存しないカレンダーグリッド用のレイアウトエンジンです。渡された `Calendar` で日付を正規化し、行の境界でバーを分割して、レーン、オーバーフロー、日ごとの占有状況を返します。
できること
- `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`、1行の列数、レーン上限、終了境界の意味を定義します。
KLCalendarLaneLayout行内セグメント、決定的なオーバーフローID、日ごとの問い合わせを提供します。
デモアプリ
MonthLane
`Calendar` に基づく複数日範囲の正規化 · 行の境界で先頭・末尾の情報を持つセグメントを生成
LaneStressLab
決定的なレーン割り当てとオーバーフローの記録 · 範囲イベントが占有するレーン数を日ごとに取得