CalendarMenu
为iOS(13.0或更高版本)提供的可自定义日历菜单,使用Swift 5编写。
- 用于日期/周/月选择的UIControl子类
- 支持国际化/本地化
- 可主题化
示例
运行示例项目
$ git clone [email protected]:ugalek/CalendarMenu.git
$ cd CalendarMenu
$ pod install
使用方法
CalendarMenu可通过CocoaPods获取。要安装它,只需将以下行添加到您的Podfile中
pod 'CalendarMenu'
集成
导入CalendarMenu
import CalendarMenu
定义一个CalendarMenu
视图IBOutlet
(在此处命名为cMenu
)
@IBOutlet weak var cMenu: CalendarMenu!
添加一个处理目标的DateField
对象
dateField.delegate = self
dateField.addTarget(self, action: #selector(textFieldTapped), for: .touchDown)
然后是相关联的@objc
方法,它将调用showCalendarMenu()
方法
@objc func textFieldTapped() {
cMenu.showCalendarMenu()
}
所选的日期可以通过.valueChanged
动作来处理
cMenu.addTarget(self, action: #selector(cMenuValueChanged), for: .valueChanged)
@objc func cMenuValueChanged() {
calendarInterval = cMenu.calendarInterval
dateField.text = cMenu.dateIntervalLabel.text
switch calendarInterval {
case .Day:
dateOfCalendar = cMenu.dayOfCalendar ?? Date()
case .Week:
firstDayOfCalendar = cMenu.firstDayOfCalendar
lastDayOfCalendar = cMenu.lastDayOfCalendar
case .Month:
monthOfCalendar = cMenu.monthOfCalendar ?? Date().startOfMonth
}
}
主题化
自定义字体和颜色就像设置几个属性一样简单。
让我们通过修改日期间隔字体和按钮ansi颜色来举一个例子
cMenu.style.fontDateInterval = UIFont.systemFont(ofSize: 17.0, weight: .light)
cMenu.style.buttonTintColor = .red
属性 | 描述 |
---|---|
bgColor |
视图背景颜色 |
fontDateInterval |
日期间隔标签字体 |
segmentControlTintColor |
标签控制器渐变颜色 |
selectedSegmentTintColor |
标签控制器选中项颜色 |
buttonTintColor |
按钮ansi颜色 |
buttonBorderColor |
按钮边框颜色 |
本地化
如果你的项目已进行本地化,你可以编辑 Localizable.strings
以自定义字符串
"Day" = "Jour";
"Week" = "Semaine";
"Month" = "Mois";
"Today" = "Aujourd'hui";
许可
CalendarMenu 在MIT许可下可用。更多信息请参阅LICENSE文件。