伊拉格尼历日期选择器 2.0.0

伊拉格尼历日期选择器 2.0.0

Omid Golparvar维护。



  • Omid Golparvar

🗓 🇮🇷波斯语日期选择器

iPhone自带一个日期选择器,可以为其设置Locale和Calendar,以便我们可以选择波斯语日期。但我个人觉得这不是很有趣;因为使用它

  • 每次只能选择一个日期
  • 使用系统默认字体。
  • 看起来不漂亮。

因此,我决定实现一些具有以下特性/缺陷的解决方案。我还放了几张照片,以便您在(使用之前)欣赏一下。

安装

您可以使用 Cocoapod 安装它。使用的安装语句是这样的

pod 'IDPersianDatePicker'

👈请注意,本项目的语言是 Swift 4.2

相關

步骤一

第一步是导入它

import PersianDatePicker

👈请注意,我们使用IDPersianDatePicker进行安装,但使用PersianDatePicker进行导入。之所以这样做,是因为Pod中已经存在一个名为PersianDatePicker的库,因此我不得不在这个CocoaPod中使用不同的名称来发布这个工具。

第二步

接下来的步骤是让您的视图控制器实现一个协议。需要实现的协议是 PersianDatePickerDelegate。这个协议的职责是准备用于选择器的数据和特性。
它包含的方法和特性如下

  • 方法 persianDatePicker(canSelectDate date: Date),返回类型为 Bool

    使用这个方法,您可以阻止选择一系列日期。


  • 方法 persianDatePicker(didSelectDates dates: [Date])

    当用户点击选择按钮时,可以选择的日期将通过此方法提供。


第三步

以下是调用和显示选择器的步骤

PersianDatePicker.Present(
  sourceController : UIViewController,
  configuration    : PersianDatePicker.Configuration,
  delegate         : PersianDatePickerDelegate,
  completion       : (() -> Void)?
)

设置(或说 PersianDatePicker.Configuration

在这个版本中,我将选择器需要的设置从 delegate 分离出来了。现在在显示时,您需要构建所需的设置并将其传递。这些设置分为几个主要部分

用户界面设置(特性 ui

var font: UIFont = .systemFont(ofSize: 16, weight: .regular)
  • 指明使用的字体。

var selectedDayTextColor: UIColor	= .black
  • 指定选择元素文本的颜色。

var selectedDayBackgroundColor: UIColor = /* a_beautiful_color */
  • 指定选择元素背景的颜色。

文本设置(特性 texts

var title: String = "تاریخ مورد نظر خود را انتخاب نمایید"
  • 指定要显示的标题。

var message: String? = nil
  • 指定要显示的描述。

选择日期设置(标识 selection

var minimumDate: Date
var maximumDate: Date
  • 这些设置确定日历中的最小和最大日期。

var canSelectMultipleDates: Bool = false
  • 这个属性表示是否可以选择多个日期,或者只能选择一个日期。
  • 此属性的默认值是 false

var preselectedDates: [Date] = []
  • 本属性指定了默认选中的日期。
  • 如果此属性不为空,则默认情况下会显示一个包含所选最早日期的页面。

var defaultDay: Date? = nil
  • 这个属性指定了日历显示的默认日期。也就是说,如果该属性有值,则默认情况下会显示包含该日期的日历页面。
  • 此属性的默认值是 nil
  • 如果没有预设日期,并且此属性也无值,则默认情况下会显示日历的第一个页面;即包含 minimumDate 的页面。
  • 为了设置默认日历页面,preselectedDates 的优先级高于此属性

结语

  • 👀如果在实施或使用过程中发现任何问题,请务必告知我们以便解决。
  • 🤝如果想到任何可以使这个项目变得更好的特定功能,请务必告诉我;我们可能通过其他人的帮助来实现它。
  • 😋独一无二。