Swift패키지 · v0.1.0

KLCalendarLanes

달력 격자의 여러 날 종일 이벤트 막대에 결정적으로 레인을 배정합니다.

KLCalendarLanes는UI에 의존하지 않는 달력 격자 레이아웃 엔진입니다. 전달한 `Calendar`로 날짜를 정규화하고 행 경계에서 막대를 나누며 레인, 오버플로, 날짜별 점유 정보를 반환합니다.

지원OS
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, 날짜별 조회를 제공합니다.

데모 앱

MonthLane

`Calendar` 기반 여러 날 범위 정규화 · 행 경계에서 시작과 끝 정보를 가진 세그먼트 생성

LaneStressLab

결정적인 레인 배정과 오버플로 기록 · 범위 이벤트가 차지하는 레인 수를 날짜별로 조회