CKCalendar 1.0.0

CKCalendar 1.0.0

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2014年12月

未声明的 维护。



  • Jason Kozemczak

CKCalendar 是一个简洁、易于定制的 iOS 日历控件。只需将头文件、实现文件和资源文件添加到你的项目中,并链接其框架依赖项:QuartzCore 和 CoreGraphics。

CKCalendar screenshot

默认的日历设计由 John Anderson 提供。谢谢 John!

与 CKCalendar 交互

CKCalendar 提供代理回调以与日历交互。首先,请确保在 CKCalendarView 实例上设置了 delegate 属性

- (void)someMethod {
  CKCalendarView *calendar = [[CKCalendarView alloc] init];
  [self.view addSubview:calendar];
  calendar.delegate = self;
}

CKCalendarDelegate 协议中有许多代理方法,可以轻松定制和扩展日历的行为。

当用户尝试选择一个日期(通过点击)时,如果代理实现了它,日历将调用其代理的 calendar:willSelectDate: 方法,传入用户选择的日期。返回 NO 将拒绝选择。例如,如果你的应用程序是用于预订,你可能不想允许选择已经预订的日期。

选择日期后,如果代理实现了它,日历将调用你的代理的 calendar:didSelectDate: 方法。你可以使用此回调来跟踪用户选定的日期。

当用户点击一个已选日期时,日历将沿着与上述所述选择生命周期相同的方式调用 calendar:willDeselectDate:calendar:didDeselectDate:

同样,当用户尝试转到上个月或下个月时,如果代理实现了它,日历将调用代理的 calendar:willChangeToMonth: 方法给你一个机会决定是否允许这样做。在月份改变后,将调用代理的 calendar:didChangeToMonth: 方法,并将其第一个与代理一同传递。

配置日期项

为了完全控制显示的日期,可以实现代理方法 calendar:configureDateItem:forDate:。日历将传递一个 CKDateItem 的实例给代理;这个 dateItem 可以被修改,这将影响它所表示的日期的显示。

向前/向后填充月份

你可以启用在当前月份之前和之后完全填充剩余日历空间。非当前月份单元格的样式可以自定义。

calendarView.onlyShowCurrentMonth = NO;

定制

该日历被编写为易于样式化,以确保您能够在应用程序中使其无缝。您可以自定义几乎所有元素的字体、文本颜色和背景颜色。您还可以配置日历应从星期几开始。日历允许您设置可选的最小和/或最大可选日期(这些日期也可以进行样式化)。如果您还有尚未满足的功能,请添加它!目前代码可读且易于扩展。祝您玩得开心!

许可证(MIT)

版权(c)2013 Jason Kozemczak

特此授予任何人无限制使用本软件和相关文档文件(“软件”)的自由,包括但不限于使用、复制、修改、合并、发布、分发、转授权和/或销售软件副本的权利,并允许将软件提供给他人以便他们这样做,但必须遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“现状”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途的适用性和非侵权性。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论该责任是基于合同、侵权或其他原因产生的,无论是否与软件或其使用或其他情况有关。