截图
关于
支持以下功能的日历:
- 水平及垂直滑动方向
- 显示天数
- 单日或多日选择
- 首周星期为星期日或星期一
- 附加视图
示例项目
请查看以下链接的示例项目:[此处](/Example/)
使用方法
为了创建具有水平滚动方向的日历
- 创建包含 2 个 UIView 的故事板
- 将第一个视图设为
VAMonthHeaderView
的子类,它将表示月份名称和切换月份的控件按钮
- 将第二个视图设为
VAWeekDaysView
的子类,此视图将显示星期名称
- 建议根据设置
firstWeekday
和timeZone
指定自己的日历,以正确显示日期
let defaultCalendar: Calendar = {
var calendar = Calendar.current
calendar.firstWeekday = 1
calendar.timeZone = TimeZone(secondsFromGMT: 0)!
return calendar
}()
- 配置
VAMonthHeaderView
和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
}
}
- 设置
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
文件。