一款可自定义日期选择器的 SwiftUI 库

FXDatePicker

用于可自定义日期选择器的 SwiftUI 库。

特性

  • 同时支持伊斯兰历和公历。
  • 允许使用图像或 SF Symbol 在天数下方添加图像。
  • 支持阿拉伯语和英语。
  • 兼容暗黑模式和亮色模式。
  • 提供完全自定义支持。

FXDatePicker 与 iOS 日期选择器

  • 自定义:FXDatePicker 支持广泛的自定义,包括在日期下方添加图标。相比之下,iOS 日期选择器的功能比较基本,自定义选项有限。
  • 用户界面:FXDatePicker 采用适合用户体验的现代化界面,而 iOS 日期选择器的外观标准且不可更改。
  • 灵活性:FXDatePicker 非常适合创建特色鲜明、引人入胜的日期选择体验。而 iOS 日期选择器更适合需要基本日期选择功能的应用程序。

用法

  1. 添加一个绑定 Date 变量来保存选择内容。
  2. 创建一个 specialDates 数组,以便在日期下方添加图像。
  3. 初始化 FXDatePicker 并按需显示。
FXDatePickerView(selectedDate: $selectedDate, specialDates: specialDates)

使用 specialDates 添加自定义标记

specialDates 数组允许你在日历中的特定日期添加自定义标记。可以使用自定义图像或 SF Symbol 来突出显示这些日期。每个特殊日期都有其类型 (SpecialDateType),它可以是图像的 ImageType 或 SF Symbol 的 SFSymbolsType。以“日/月/年”格式设置日期。

向日期添加 SF Symbol

要使用 SF Symbol 来标记日期,请创建一个 SpecialDate 实例,并将其 dateType 设置为 .sfSymbols。提供日期、符号的名称及其颜色:

let specialDates: [SpecialDate] = [
    SpecialDate(dateType: .sfSymbols(SFSymbolsType(dateString: "2/1/2024", 
                                                   imageName: "airplane.departure", 
                                                   color: .blue)))
]

在上述示例中,飞机起飞符号将以蓝色显示在 2024 年 1 月 2 日。

向日期添加图像

要使用自定义图像标记特定日期,请将 dateType 设置为 .image,并提供日期和图像名称:

        SpecialDate(dateType: .image(ImageType(dateString: "13/1/2024", imageName: "home"))

自定义 | 可用修饰符:

calenderType

可以使用 calendarType 更改日期选择器的类型。例如,要使用伊斯兰历:

FXDatePickerView(selectedDate: $selectedDate, specialDates: specialDates)
.calenderType(.hijri)

默认值为 .gregorian.

datePickerTheme

可以使用 datePickerTheme 自定义日期选择器的主题。例如:

FXDatePickerView(selectedDate: $selectedDate, specialDates: specialDates)
.datePickerTheme(main:
 .init(
accentColor: Color(uiColor: UIColor(red: 0.23, green: 0.80, blue: 0.81, alpha: 1.00)),
monthTitle: .white,
days