钉钉日期选择器 - QTimePicker
近日发现钉钉的日期选择器使用时比较方便,就试着写了一个,基本实现功能并适当做了些优化,先看效果:
思路
1、框架主要由三个部分组成:基础 QCalendarPicker, 日历模块 CalendarView, 时间选择模块 TimePickerView。
QCalendarPicker 负责作为基层负责显示界面、获取最终数据、底层基础操作等
CalendarView 单独的日历模块,输出选中的日期,是 QTimePicker 主要部分
TimePickerView 时间选择, 使用 UIDatePicker, 功能简单
2、主要说一说 CalendarView 的实现
使用 UICollectionView 作为日历单元格的布局,使之滚动分页 collectionView.isPagingEnabled = true。
采用 42 * 3 个item, 每一页42个item共三页。初始化时使 collectionView 滚到第二页即显示页面的第一个item的 下标是42.
每次滑动一页的时候会再次使 collectionView 滚到第二页,并重置数据
使用
使用很简单,把 QTimePicker.swift 拖入项目,使用以下代码就行
let picker = QCalendarPicker { (date: String) in
print(date)
}
picker.show()
QDatePicker
新增传统的日期选择器(样式如上图)
支持两种选择模式
enum QPickerStyle {
case datePicker // 时间选择器
case singlePicker // 单项选择器
}
datePicker 模式下 支持一下日期样式
enum DatePickerStyle { // 此只在 datePicker 下生效
case YMDHM // 选择 年月日时分
case YMD // 选择 年月日
case MDHM // 选择 月日时分
case MD // 选择 月日
case HM // 选择 时分
}
可选弹出动画样式
enum AminationStyle {
case styleDefault // 默认弹出样式
case styleOptional // 可选弹出样式
}
使用
使用很简单,把 QDatePicker.swift 拖入项目,使用以下代码就行 datePicker模式下的选项 和 singlePicker 模式下的选项互斥
let picker = QDatePicker { (date: String) in
print(date)
}
picker.datePickerStyle = .YMDHM
picker.themeColor = .red
picker.pickerStyle = .singlePicker
picker.animationStyle = .styleOptional
picker.singlePickerDatas = ["小新", "小徹", "阿呆", "正男", "妮妮", "小白", "娜娜子?"]
picker.show()
源码地址:http://github.com/qyfeng009/QTimePicker
- 随着第一个“硬分叉”日期临近,莱特币正在飙升
- 首轮100000元新年红包领取截止日期仅剩1天!
- 运城各大医院春节假日期间门诊安排出炉!
- 美国经济增长预期遭下调,但3月加息仍板上钉钉?
- 市领导检查节日期间公共安全
- 舜宇光学科技 (02382.HK) 正面盈利預告
- 末世求生之路 《战锤:末世鼠疫2》上市日期公布
- 春节假日期间全国环境空气质量总体形势较好
- 肾功能不好的人群,节日期间更应该注意哪些问题?
- 央行支付清算系统节假日期间正常提供24小时全时服务