CrispyCalendar 1.0.10

CrispyCalendar 1.0.10

Denis Germanenko’ --description=macbook_pro’Nikita TarkhovAlexandr Kiyaykin维护。



  • Cleverpumpkin, Ltd.

crispycalendar

无论您是在编写另一个待办事项跟踪器或日历应用,还是只想让用户避开使用UIDatePicker的烦恼,并让他们快速高效地选择日期——CrispyCalendar正是您需要的日历UI框架。

CocoaPods Compatible Platform support Documentation License

功能

  • 考虑本地化编写。
    具体来说,测试了众多(甚至有些荒谬)的日历类型、区域标识符和书写方向的组合。此外,由于该框架仅使用标准Apple框架(因此,它们的翻译)且不含任何第三方代码,所以没有单个翻译错误。
  • 易于集成、可定制选项和可扩展性——您可以自由选择任何或所有这些。
    框架包含解决常见任务的现成组件;在许多情况下,一行代码即可应用丰富的用户界面,让您能够专注于业务逻辑的实现。但与此同时,每个这样的解决方案都配备了详细的调整选项,且设计为模块化,允许您自由重用和组合基本块以满足您的特定需求。
  • 性能优化。
    即便是在性能卓越的设备,如iPhone 5上,日历也能以可接受的帧率进行渲染。为了实现这一点,不得不做出一些小的牺牲,但总体结果仍然令人瞩目。
  • 支持Objective C。
    无论您受限于旧代码,还是尚未准备好在生产代码中使用Swift,都可以从Objective C使用CrispyCalendar。主要是缺少特定于Swift的特性,但在这里和那里可能存在盲点。

入门

  • 入门指南包含框架概述和基本概念的描述。
  • 示例目录中可以找到常见的使用模式和代码例子。
  • 演示项目.
  • API参考包含大多数公开类型和标识符的详细描述。
  • 内部参考 explains a number of internal design decisions and reasoning. Although it is not yet comprehensive, work is ongoing.

安装

Cocoapods(推荐使用)

CocoaPods是Swift和Objective-C cocoa项目的依赖项管理器。它拥有超过53,000个库,并在超过300万个应用程序中使用。有关更多信息和使用说明,请参阅:使用Cocoapods

要使用Cocoapods将CrispyCalendar集成到您的Xcode项目中,请在Podfile中指定它:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.3'

target 'TargetName' do
    pod 'CrispyCalendar', '~> 1.0.1'
end

然后运行以下命令:

$ pod install

手动

在Xcode中打开示例项目并构建CrispyCalendar框架target。然后将其嵌入到您的项目中,并添加到app target的Linked Frameworks and Libraries部分。

屏幕截图

外观定制

所有字体、颜色和其他外观细节都可以通过相应的属性进行自定义。CPCCalendarView 也支持通过 UIAppearance 对Objective-C中表示的属性进行自定义。

默认基本从Debt Control来输入视图来自Debt Control
default basic inputview

简单选择

预构建UI通常使用可以显示单月的CPCMonthView。可以将CPCMultiMonthsView用作包含月份视图的容器,以实现共享选择处理和其他功能。

单日选择日期范围选择
single range

有序选择和无序选择

选择过程完全由相应视图的代理外部控制。注意,容器内部视图的代理不受支持。

无序选择有序选择
unordered ordered

自定义绘制处理程序

CPCMonthView不包含任何真正的子视图,但它是从“标题”、“网格”和“日单元格”逻辑上的绘制而成的,支持通过自定义CPCDayCellRenderer进行自定义日渲染。

自定义单元格渲染器示例
drawing

本地化

任何组件使用的区域设置不能显式设置,但日历的区域设置将被尊重。框架使用[[NSBundle mainBundle] preferredLocalizations] firstObject]作为默认区域设置,包括为未显式设置区域设置的日历设置。

非公历日历渲染
hebrew

其他

完全支持可用日期限制、RTL和横幅方向。

日期限制列模式
constrained columns
RTL布局
rtl

信用

CrispyCalendar 由 Cleverpumpkin, Ltd 拥有并维护。

CrispyCalendar最初是由Kirill Bystrov创建的,作为对高质量的日历渲染库缺乏的一种回应。存在一个Android的对应版本(但API和UX都不相同),您可以在以下链接中查看: CrunchyCalendar

授权

CrispyCalendar 以MIT许可证发布。详细信息请参阅LICENSE