Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/RaffiKian/RKCalendar

SwiftUI Simple Calendar / Date Picker for iOS
https://github.com/RaffiKian/RKCalendar

calendar datepicker ios swift swift-library swift5-1 swiftui

Last synced: about 2 months ago
JSON representation

SwiftUI Simple Calendar / Date Picker for iOS

Awesome Lists containing this project

README

        

# RKCalendar
**RKCalendar** is a SwiftUI Calendar / Date Picker for iOS.

Features include:

- minimum and maximum calendar dates selectable,
- single date selection,
- range of dates selection,
- multi-dates selection,
- disabled dates setting.

### Light Mode
demo app first screenshot demo app first screenshot
### Dark Mode
demo app first screenshot demo app first screenshot

**⚠️ WARNING ⚠️** This is an early version of this library that requires Swift 5.1 and Xcode 11

# Requirements
- iOS 13.0+
- Xcode 11+
- Swift 5.1+

# Installation

Integrate RKCalendar into your project by including the files in the "Manager" group.

# Usage

See **ContenView.swift** for some examples. Typically create a **RKManager** and pass it to a **RKViewController**.

Customise the **RKManager** for the desired effects as follows:

## Calendar minimum and maximum date setting

Setting the calendar, minimum and maximum dates that can be selected.

RKManager(calendar: Calendar.current, minimumDate: Date(), maximumDate: Date().addingTimeInterval(60*60*24*365), mode: 0)

## Single date selection

Use mode 0 to select a single date.

RKManager(calendar: Calendar.current, minimumDate: Date(), maximumDate: maxDate, mode: 0)

## Range of dates selection

Use mode 1 to select a contiguous range of dates, from a start date to an end date.

RKManager(calendar: Calendar.current, minimumDate: Date(), maximumDate: maxDate, mode: 1)

Note, mode 2 is automatically toggled internally and the end date must be greater than the start date.

## Multi-dates selection

Use mode 3 for selecting a number of dates.

RKManager(calendar: Calendar.current, minimumDate: Date(), maximumDate: maxDate, mode: 3)

## Disabled-dates setting

Use any mode and set zero or more dates to be disabled (un-selectable).

For example:

var rkManager = RKManager(calendar: Calendar.current, minimumDate: Date(), maximumDate: maxDate, mode: 0)

rkManager.disabledDates.append(contentsOf: [
Date().addingTimeInterval(60*60*24*4),
Date().addingTimeInterval(60*60*24*5),
Date().addingTimeInterval(60*60*24*7)
])

# License
RKCalendar is available under the MIT license. See the LICENSE file for more info.