Skip to content

An event recurrence rule picker similar to iOS system calendar.

License

Notifications You must be signed in to change notification settings

wousser/RecurrencePicker

 
 

Repository files navigation

#RecurrencePicker An event recurrence rule picker similar to iOS system calendar.

Example

##How To Get Started ###Carthage Specify "RecurrencePicker" in your Cartfile:

github "teambition/RecurrencePicker"

###Usage

Import necessary frameworks
import RRuleSwift
import EventKit
import RecurrencePicker
Initialization and Configuration
// prepare a recurrence rule and an occurrence date
// occurrence date is the date which the repeat event occurs this time
let recurrenceRule = ...
let occurrenceDate = ...

// initialization and configuration
// RecurrencePicker can be initialized with a recurrence rule or nil, nil means "never repeat"
let recurrencePicker = RecurrencePicker(recurrenceRule: recurrenceRule)
recurrencePicker.language = .english
recurrencePicker.calendar = Calendar.current
recurrencePicker.tintColor = UIColor.blue
recurrencePicker.occurrenceDate = occurrenceDate

// assign delegate
recurrencePicker.delegate = self

// push to the picker scene
navigationController?.pushViewController(recurrencePicker, animated: true)
Implement the delegate
func recurrencePicker(_ picker: RecurrencePicker, didPickRecurrence recurrenceRule: RecurrenceRule?) {
    // do something, if recurrenceRule is nil, that means "never repeat".
}

Minimum Requirement

iOS 8.0

##Dependency RecurrencePicker's running requires RRuleSwift.

##Localization RecurrencePicker supports 5 languages: English, Simplified Chinese, Traditional Chinese, Korean, Japanese. You can set the language when initialization.

You can also get a localized rule text string like this:

let ruleString = "RRULE:FREQ=WEEKLY;INTERVAL=2;WKST=MO;DTSTART=20160413T133011Z;BYDAY=TU,WE,FR"
let recurrenceRule = RecurrenceRule(rruleString: ruleString)
let language: RecurrencePickerLanguage = ...
let recurrenceRuleText = recurrenceRule?.toText(of: language, occurrenceDate: Date())
print(recurrenceRuleText)
// Event will occur every 2 weeks on Tuesday, Wednesday and Friday.
// 事件将每2周于星期二、星期三和星期五重复一次。
// 行程每2週的星期二、星期三和星期五重複一次。
// 2주마다 화요일, 수요일 및 금요일에 이벤트 반복
// 2週間ごとに、火曜日、水曜日と金曜日にあるイベントです。

Release Notes

License

RecurrencePicker is released under the MIT license. See LICENSE for details.

More Info

Have a question? Please open an issue!

About

An event recurrence rule picker similar to iOS system calendar.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 100.0%