Maya 是一个可定制的日历库,带有一个开箱即用的 MayaCalendarView
。
Maya 还包括一些辅助类,使得日期管理更加简单(《MayaDate)、《MayaWeekday》和《MayaMonth》)。
Maya 可通过 CocoaPods 获得。要安装它,只需将以下行添加到您的 Podfile 中。
pod 'Maya'
MayaCalendarView
支持通过 xibs 和 程序化 两种方式使用。
您可以通过初始化它来创建一个 MayaCalendarView
对象,就像初始化任何其他 UIView
子类。
import Maya
class YourViewController: UIViewController {
var calendarView: MayaCalendarView!
override func viewDidLoad() {
calendarView = MayaCalendarView(frame: view.bounds)
view.addSubview(calendarView)
}
}
要将 MayaCalendarView
添加到 XIB(或 Storyboard),您只需从 对象库 拖动一个 UIView
,并将其类更改为 MayaCalendarView
。
MayaCalendarView
为了避免潜在的性能问题,使用一系列月份和当前月份作为其内部数据模型。
您可以自由设置 firstMonth
、lastMonth
和 currentMonth
的值,日历将根据需要进行调整。
MayaCalendarView
允许更改许多值以更好地满足您的需求
weekdays
:表示从周日开始到周六结束的 7 个字符串的数组。(默认为 “su, mo, tu, we, th, fr, sa”)monthFont
:用来书写月份名称的字体。(默认为 UIFont.boldSystemOfSize(18)
)weekdayFont
:用来书写星期名称的字体。(默认为 UIFont.systemFontOfSize(15)
)dayFont
:用来书写日期数字的字体。(默认为 UIFont.systemFontOfSize(16)
)weekdayTextColor
:书写星期名称时的颜色。(默认为 UIColor.blackColor()
)这个库的主要目的是允许你的 dataSource
自定义每一天的外观。
MayaDataSource
提供以下函数来自定义:
calendarMonthName(month: MayaMonth) -> String?
:给每个月份的名称。(默认为完整月份名称,例如十二月)calendarTextColorForDate(date: MayaDate) -> UIColor?
:用于书写日期数字的颜色。(默认为 UIColor.blackColor()
)calendarBackgroundColorForDate(date: MayaDate) -> UIColor?
:设置日期背景的颜色。(默认为 UIColor.clearColor()
)为了与 MayaCalendarView
交互,你也可以设置 delegate
属性。
MayaDelegate
允许接收以下操作的通知:
func calendarDidSelectDate(date: MayaDate)
:当用户在日历中点击特定日期时调用。func calendarDidChangeMonth(month: MayaMonth)
:当用户点击箭头按钮或滚动到不同月份时调用。iOS 9.0+
在 Example
目录中有一个示例项目。
Ivan Bruel, @ivanbruel
Maya 可在 MIT 许可证下获取。有关更多信息,请参阅 LICENSE 文件。