All Projects → Vodolazkyi → Vacalendar

Vodolazkyi / Vacalendar

Licence: mit
Custom Calendar for iOS in Swift

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Vacalendar

Calendar Ios
Calendar View
Stars: ✭ 154 (-16.3%)
Mutual labels:  ui-components, calendar, calendar-component
Vue Calendar
🏆 基于 vue 2.0 开发的轻量,高性能日历组件
Stars: ✭ 828 (+350%)
Mutual labels:  calendar, calendar-component
React Native Calendars
React Native Calendar Components 🗓️ 📆
Stars: ✭ 7,363 (+3901.63%)
Mutual labels:  ui-components, calendar
Yycalendar
Simple and Clear Calendar
Stars: ✭ 46 (-75%)
Mutual labels:  calendar, calendar-component
React Timeline Gantt
A react Timeline component with virtual rendering
Stars: ✭ 347 (+88.59%)
Mutual labels:  calendar, calendar-component
Calendarview
An Easy to Use Calendar for iOS (Swift 5.0)
Stars: ✭ 429 (+133.15%)
Mutual labels:  calendar, calendar-component
Vue Hash Calendar
移动端日期、时间选择插件,日期选择面板以日历形式展示。上下滑动切换周/月模式。支持两种模式:1,月模式,左右滑动切换月份。2、周模式,左右滑动切换周。
Stars: ✭ 163 (-11.41%)
Mutual labels:  calendar, calendar-component
UltraWeekCalendar
UltraWeekCalendar - Clean UI to select day through weeks
Stars: ✭ 29 (-84.24%)
Mutual labels:  calendar, calendar-component
React Native Persian Calendar Picker
Persian Calendar Picker Component for React Native
Stars: ✭ 83 (-54.89%)
Mutual labels:  calendar, calendar-component
React Native General Calendars
React Native Calendar Components 📆
Stars: ✭ 94 (-48.91%)
Mutual labels:  ui-components, calendar
Pg Calendar
📆 beautiful and eidetic date picker
Stars: ✭ 109 (-40.76%)
Mutual labels:  ui-components, calendar
Cvcalendar
A custom visual calendar for iOS 8+ written in Swift (>= 4.0).
Stars: ✭ 3,435 (+1766.85%)
Mutual labels:  calendar, calendar-component
Vue Functional Calendar
Vue.js Functional Calendar | Component/Package
Stars: ✭ 314 (+70.65%)
Mutual labels:  calendar, calendar-component
Koyomi
Simple customizable calendar component in Swift 📆
Stars: ✭ 716 (+289.13%)
Mutual labels:  ui-components, calendar
Primedatepicker
PrimeDatePicker is a tool that provides picking a single day, multiple days, and a range of days.
Stars: ✭ 292 (+58.7%)
Mutual labels:  calendar, calendar-component
Calendarview
Android上一个优雅、万能自定义UI、仿iOS、支持垂直、水平方向切换、支持周视图、自定义周起始、性能高效的日历控件,支持热插拔实现的UI定制!支持标记、自定义颜色、农历、自定义月视图各种显示模式等。Canvas绘制,速度快、占用内存低,你真的想不到日历居然还可以如此优雅!An elegant, highly customized and high-performance Calendar Widget on Android.
Stars: ✭ 7,998 (+4246.74%)
Mutual labels:  calendar, calendar-component
Customizablecalendar
CustomizableCalendar is a library that allows you to create your calendar, customizing UI and behaviour
Stars: ✭ 214 (+16.3%)
Mutual labels:  calendar, calendar-component
GCCalendar
A customizable calendar view for iOS 9+ written in Swift.
Stars: ✭ 53 (-71.2%)
Mutual labels:  calendar, calendar-component
Recyclercalendarandroid
A simple DIY library to generate your own custom Calendar View using RecyclerView, written in Kotlin
Stars: ✭ 83 (-54.89%)
Mutual labels:  calendar, calendar-component
Nativescript Ui Feedback
This repository is used for customer feedback regarding Telerik UI for NativeScript. The issues system here is used by customers who want to submit their feature requests or vote for existing ones.
Stars: ✭ 110 (-40.22%)
Mutual labels:  ui-components, calendar

Screenshots

About Swift 4.2

The calendar with support for:

  • Horizontal and vertical swipe directions
  • Showing days out
  • Single and multi days selection
  • First weekday sunday or monday
  • Supplementary views
  • Localization

Example project

Take a look at the example project over here

Usage

In order to create calendar with horizontal scroll direction:

  1. Create storyboard with 2 UIViews
  2. Make the first one subclass of VAMonthHeaderView, it will represent the name of the month and the control buttons to switch between months

  1. Make the second view subclass of VAWeekDaysView, this view will display weekdays names

  1. I recommend that you specify your own calendar with the settings firstWeekday andtimeZone to correctly display dates
let defaultCalendar: Calendar = {
    var calendar = Calendar.current
    calendar.firstWeekday = 1
    calendar.timeZone = TimeZone(secondsFromGMT: 0)!
    return calendar
}()
  1. Configure appearance of VAMonthHeaderView and VAWeekDaysView
    @IBOutlet weak var monthHeaderView: VAMonthHeaderView! {
        didSet {
            let appereance = VAMonthHeaderViewAppearance(
                previousButtonImage: #imageLiteral(resourceName: "previous"),
                nextButtonImage: #imageLiteral(resourceName: "next"),
                dateFormat: "LLLL"
            )
            monthHeaderView.delegate = self
            monthHeaderView.appearance = appereance
        }
    }
    
    @IBOutlet weak var weekDaysView: VAWeekDaysView! {
        didSet {
            let appereance = VAWeekDaysViewAppearance(symbolsType: .veryShort, calendar: defaultCalendar)
            weekDaysView.appearance = appereance
        }
    }
  1. Setup VACalendarView
    var calendarView: VACalendarView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let calendar = VACalendar(calendar: defaultCalendar)
        calendarView = VACalendarView(frame: .zero, calendar: calendar)
        calendarView.showDaysOut = true
        calendarView.selectionStyle = .multi
        calendarView.monthDelegate = monthHeaderView
        calendarView.dayViewAppearanceDelegate = self
        calendarView.monthViewAppearanceDelegate = self
        calendarView.calendarDelegate = self
        calendarView.scrollDirection = .horizontal
        view.addSubview(calendarView)
    }
    
    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        
        if calendarView.frame == .zero {
            calendarView.frame = CGRect(
                x: 0,
                y: weekDaysView.frame.maxY,
                width: view.frame.width,
                height: view.frame.height * 0.6
            )
            calendarView.setup()
        }
    }

Release Notes

Version 1.0

  • Release version.

Version 1.3

  • Added ability to define own date format for VAMonthView's month header by @spase84
  • Localization
  • Swift 4.2

Requirements

  • Swift 4.0
  • Xcode 9
  • iOS 10.0+

Installation

CocoaPods

use_frameworks!

pod 'VACalendar'

License

VACalendar is released under an MIT License. See LICENSE for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].