VACalendar 1.3

VACalendar 1.3

vodolaz 维护。



  • Anton Vodolazkyi

截图

关于

支持以下功能的日历:

  • 水平及垂直滑动方向
  • 显示天数
  • 单日或多日选择
  • 首周星期为星期日或星期一
  • 附加视图

示例项目

请查看以下链接的示例项目:[此处](/Example/)

使用方法

为了创建具有水平滚动方向的日历

  1. 创建包含 2 个 UIView 的故事板
  2. 将第一个视图设为 VAMonthHeaderView 的子类,它将表示月份名称和切换月份的控件按钮

  1. 将第二个视图设为 VAWeekDaysView 的子类,此视图将显示星期名称

  1. 建议根据设置 firstWeekdaytimeZone 指定自己的日历,以正确显示日期
let defaultCalendar: Calendar = {
    var calendar = Calendar.current
    calendar.firstWeekday = 1
    calendar.timeZone = TimeZone(secondsFromGMT: 0)!
    return calendar
}()
  1. 配置 VAMonthHeaderViewVAWeekDaysView 的外观
    @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. 设置 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()
        }
    }

需求

  • Swift 4.0
  • Xcode 9
  • iOS 10.0+

安装

CocoaPods

use_frameworks!

pod 'VACalendar'

许可证

VACalendar采用MIT许可证发布。详细信息请参见LICENSE文件。