Colander 0.2.5

Colander 0.2.5

测试已测试
语言编程语言 SwiftSwift
许可证 MIT
发布最新发布2021 年 6 月
SPM支持 SPM

Bryan OltmanJohn MejiaAnat Gilboa 维护。



 
依赖项
SnapKit~> 5.0.1
SwiftDate~> 6.3.1
 

Colander 0.2.5

  • 作者
  • Bryan Oltman

Colander

Colander

CI Status Version License Platform

Colander 是一个可定制的 UIView 子类,用于显示滚动日历视图。

为什么叫 "Colander"?

因为 Blue Apron 是一家食品公司。

因为 "Colander" 听起来像 "calendar",有点意思。

因为 "CalendarView" 已经被占用了。

安装

Colander 可以通过 CocoaPods 获得。要安装它,只需将以下行添加到您的 Podfile

pod "Colander"

用法

    // In YourViewController.swift...
    override func viewDidLoad() {
        let calendarView = CalendarView()

        // Optional (but probably something you'll want to do): register cell and header types
        // NOTE: both of these must conform to the Dated protcol, which mandates they have a Date? var with public get and set
        calendarView.register(cellType: YourDayCellClass.self)
        calendarView.register(supplementaryViewType: YourHeaderViewClass.self, ofKind: UICollectionElementKindSectionHeader)

        // Wire up datasource and delegate
        calendarView.dataSource = self
        calendarView.delegate = self
        view.addSubview(calendarView)

        // Assuming you're using SnapKit...
        calendarView.snp.makeConstraints { make in
            make.edges.equalToSuperview()
        }
    }

CalendarView

显示日历的集合视图。支持的功能

  • func select(date: Date):选择对应的 day 成分的单元格所提供的 Date

  • func select(dates: [Date]):对提供的日期调用 select(date:)

  • func deselect(date: Date):取消选择对应的 day 成分的单元格所提供的 Date

  • var selectedDates: [Date]:所有当前选中日期的只读数组。

  • func select(cellAt indexPath: IndexPath):选择提供的索引路径上的单元格。

  • func deselect(cellAt indexPath: IndexPath):取消选择提供的索引路径上的单元格。

CalendarViewDataSource

数据源需要实现两个函数:startDateendDate。这些函数代表 CalendarView 显示的时间范围。

CalendarViewDataSource 还包含一些可选属性

  • calendar:您希望显示的日历。此属性默认为公历。

  • showsLeadingWeeks:如果 true(默认行为),日历渲染 startDate 月份的每一天。如果 false,最早将显示的日期是 startDate 月份的第一天(即,如果 startDate 在其月份的最后一周,并且 showsLeadingWeeks 为 false,则仅显示包含 startDate 的那一周)。

  • showsTrailingWeeks:如果 true(默认行为),日历渲染 endDate 月份的每一天。如果 false,将渲染的最后一个日期是 endDate 月份的最后一天。(即,如果 endDate 在其月份的第一周,并且 showsTrailingWeeks 为 false,则仅显示包含 endDate 的那一周)。

CalendarViewDelegate

UITableViewDelegateUICollectionViewDelegate 类似,添加对 CalendarViewDelegate 协议的支持完全是可选的。这些函数只是简单地将 UICollectionViewDelegate 函数转发/包装在底层的 UICollectionView 上,并且语义相同。

示例

运行示例项目

  1. 克隆仓库
  2. 从示例目录运行 pod install
  3. 打开 CalendarView.xcworkspace,构建,并运行

示例项目包含对 CalendarView 的三种不同示例使用

  1. 基本:使用 Colander 包裹的 CalendarDayCell,通常是 CalendarView 的最简化使用
  2. 高级:使用自定义的日单元格和标题,高亮显示当前日期的日单元格,支持单选。
  3. 更高级:与高级相同,但支持多选。还演示了 CalendarViewselect(date:) 函数的使用。

要求

  • iOS 8+(由于使用 UIStackView,示例项目为 iOS 9)
  • Xcode 8+

依赖

SwiftDate 和 SnapKit 使 Colander 的开发变得更加愉快。

作者

布莱恩·奥尔特曼(Bryan Oltman),[email protected]

许可

Colander 可在 MIT 许可下使用。有关更多信息,请参阅 LICENSE 文件。

第三方许可

SnapKit

版权所有(c)2011-至今 SnapKit 团队 - https://github.com/SnapKit

特此授予任何获得本软件及其相关文档文件(“软件”)副本的人免费使用软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向提供软件的人提供上述使用权,以下条件为准:

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

软件按“原样”提供,不提供任何形式的质量保证,无论是明示的还是默示的,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者都不应对任何索赔、损害或任何其他责任(无论是合同侵权还是其他方式)承担责任,该索赔、损害或其他责任源于、由或与软件或其使用或其他方式有关。

SwiftDate

版权所有(c)2015 daniele margutti [email protected]

特此授予任何获得本软件及其相关文档文件(“软件”)副本的人免费使用软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向提供软件的人提供上述使用权,以下条件为准:

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

软件按“原样”提供,不提供任何形式的质量保证,无论是明示的还是默示的,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者都不应对任何索赔、损害或任何其他责任(无论是合同侵权还是其他方式)承担责任,该索赔、损害或其他责任源于、由或与软件或其使用或其他方式有关。