Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/RaffiKian/RKCalendar
- Owner: RaffiKian
- License: mit
- Created: 2019-07-14T20:04:56.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-02-07T03:25:36.000Z (almost 2 years ago)
- Last Synced: 2024-08-03T09:03:06.099Z (5 months ago)
- Topics: calendar, datepicker, ios, swift, swift-library, swift5-1, swiftui
- Language: Swift
- Size: 2.64 MB
- Stars: 525
- Watchers: 12
- Forks: 71
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
- fucking-about-SwiftUI - RKCalendar
- awesome-swiftui-libraries - RKCalendar - SwiftUI Simple Calendar / Date Picker for iOS (Calendar / Content)
- awesome - RKCalendar - SwiftUI Simple Calendar / Date Picker for iOS. (OOM-Leaks-Crash / Picker)
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
### Dark Mode
**⚠️ 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.