Small and highly customizable calendar control written in swift

SSCalendarControl

SSCalendarControl is small and highly customizable calendar control written in swift.

Features!

  • Customizable control
  • Flexible date range
  • Customizable week day
  • Selection delegates
  • Customizable month and days cells
  • CocoaPods

Requirements

  • iOS 10.0+
  • Xcode 9+

Installation

  • You can use CocoaPods to install SSCalendarControl by adding it to your Podfile:

     use_frameworks!
     pod 'SSCalendarControl'
    
  •  import UIKit
     import SSCalendarControl
    

Manually

  • Download and drop SSCalendarControl folder in your project.
  • Congratulations!

Usage example

  • In the storyboard add a UIView and change its class to SSCalendarView

Setup Calendar

calendarView.setUpCalendar(startDate: startDate, endDate: endDate, weekStartDay: .monday, shouldSelectPastDays: true, sholudAllowMultipleSelection: false)

Weekday Customization

calendarView.configuration.weekDayBorderColor = UIColor.black
calendarView.configuration.weekDayLabelBackgroundColor = UIColor.clear
calendarView.configuration.weekDayLabelTextColor = UIColor.black

Month Customization

calendarView.configuration.monthViewBackgroundColor = UIColor.white
calendarView.configuration.monthViewBottomLineColor = UIColor.darkGray
calendarView.configuration.monthLabelFont = UIFont.systemFont(ofSize: 20)
calendarView.configuration.monthLabelTextColor = UIColor.red

Days Customization

calendarView.configuration.previousDayTextColor = UIColor.black
calendarView.configuration.previousDayBorderColor = UIColor.clear
calendarView.configuration.upcomingDaysBorderColor = UIColor.clear
calendarView.configuration.upcomingDaysBorderColor = UIColor.clear
calendarView.configuration.upcomingDayTextColor = UIColor.brown
calendarView.configuration.selectedDayTextColor = UIColor.yellow
calendarView.configuration.currentDayBorderColor = UIColor.black
calendarView.configuration.currentDayTextColor = UIColor.white
calendarView.configuration.currentDayBackgroundColor = UIColor.red

Selection Delegates

calendarView.delegate = self

extension ViewController: SSCalendarDeleagte {

    func dateSelected(_ date: Date) {
        print("selected: \(date)")
    }

    func dateDeSelected(_ date: Date) {
        print("deSelected: \(date)")
    }
}

GitHub