Commit 594ed7c7 authored by David黄金龙's avatar David黄金龙

完善 时间段选择器

parent e19b7757
...@@ -152,6 +152,11 @@ class YHMyViewController: YHBaseViewController, ConstraintRelatableTarget { ...@@ -152,6 +152,11 @@ class YHMyViewController: YHBaseViewController, ConstraintRelatableTarget {
let view = YHRangeDatePickerSheetView.sheetView() let view = YHRangeDatePickerSheetView.sheetView()
view.block = { (startDate,endDate) in
print("选择的日期是:")
print(startDate)
print(endDate)
}
view.show() //for test hjl view.show() //for test hjl
} }
......
...@@ -9,7 +9,10 @@ ...@@ -9,7 +9,10 @@
import UIKit import UIKit
class YHRangeDatePickerSheetView: UIView { class YHRangeDatePickerSheetView: UIView {
static let contentViewH : CGFloat = YHRangeDatePickerView.viewH + 98 + 112 + 12 static let contentViewH : CGFloat = (16 + 24) + (12 + 1) + (12 + 32) + YHRangeDatePickerView.viewH + 98 + 20
typealias Block = (Date,Date) -> ()
var block: Block?
lazy var blackMaskView: UIView = { lazy var blackMaskView: UIView = {
let view = UIView() let view = UIView()
...@@ -79,13 +82,6 @@ class YHRangeDatePickerSheetView: UIView { ...@@ -79,13 +82,6 @@ class YHRangeDatePickerSheetView: UIView {
return button return button
}() }()
// lazy var myScrollView: UIScrollView = {
// let view = UIScrollView()
// view.backgroundColor = .clear
// view.showsVerticalScrollIndicator = false
// return view
// }()
lazy var datePickView : YHRangeDatePickerView = { lazy var datePickView : YHRangeDatePickerView = {
let view = YHRangeDatePickerView() let view = YHRangeDatePickerView()
return view return view
...@@ -121,7 +117,7 @@ extension YHRangeDatePickerSheetView { ...@@ -121,7 +117,7 @@ extension YHRangeDatePickerSheetView {
UIApplication.shared.yhKeyWindow()?.addSubview(self) UIApplication.shared.yhKeyWindow()?.addSubview(self)
UIView.animate(withDuration: 0.5) { UIView.animate(withDuration: 0.5) {
let whiteHeight = YHHKCardTemplateView.contentViewH let whiteHeight = YHRangeDatePickerSheetView.contentViewH
self.whiteContentView.frame = CGRect(x: 0, y: KScreenHeight - whiteHeight, width: KScreenWidth, height: whiteHeight) self.whiteContentView.frame = CGRect(x: 0, y: KScreenHeight - whiteHeight, width: KScreenWidth, height: whiteHeight)
} }
} }
...@@ -131,7 +127,27 @@ extension YHRangeDatePickerSheetView { ...@@ -131,7 +127,27 @@ extension YHRangeDatePickerSheetView {
} }
@objc func clickSureBtn() { @objc func clickSureBtn() {
dismiss() if isChooseOk() {
if let date1 = datePickView.startDate,let date2 = datePickView.endDate {
self.block?(date1,date2)
}
dismiss()
} else {
YHHUD.flash(message: "选择开始/结束日期")
}
}
func isChooseOk()->Bool {
if datePickView.startDate != nil,datePickView.endDate != nil {
return true
}
return false
} }
} }
...@@ -197,36 +213,10 @@ private extension YHRangeDatePickerSheetView { ...@@ -197,36 +213,10 @@ private extension YHRangeDatePickerSheetView {
whiteContentView.addSubview(datePickView) whiteContentView.addSubview(datePickView)
warnImageV.snp.makeConstraints { make in datePickView.snp.makeConstraints { make in
make.top.equalTo(titleLable.snp.bottom).offset(12) make.top.equalTo(warnImageV.snp.bottom).offset(12)
make.left.right.equalToSuperview() make.left.right.equalToSuperview()
make.height.equalTo(YHRangeDatePickerView.viewH) make.height.equalTo(YHRangeDatePickerView.viewH)
} }
// whiteContentView.addSubview(myScrollView)
// myScrollView.snp.makeConstraints { make in
// make.top.equalTo(lineView.snp.bottom).offset(21)
// make.right.equalToSuperview().offset(-21)
// make.width.equalTo(KScreenWidth - 21 * 2)
// make.height.equalTo(whiteHeight-98 - 16 - 24 - 12 - 1 - 21)
// }
//
//
// if let tmpImage = UIImage(named:"hkCard_template") {
// let scale = Double(tmpImage.size.height / tmpImage.size.width)
// let imageH = scale * (KScreenWidth - 21 * 2)
//
//
// myScrollView.addSubview(bkgImageV)
// bkgImageV.snp.makeConstraints { make in
// make.top.equalToSuperview()
// make.left.equalToSuperview()
// make.width.equalTo(KScreenWidth - 21 * 2)
// make.height.equalTo(imageH)
// }
// myScrollView.contentSize = CGSize(width: KScreenWidth - 21 * 2, height: imageH)
// }
} }
} }
...@@ -50,7 +50,7 @@ class YHRangeDatePickerView: UIView,FSCalendarDataSource, FSCalendarDelegate, FS ...@@ -50,7 +50,7 @@ class YHRangeDatePickerView: UIView,FSCalendarDataSource, FSCalendarDelegate, FS
calendar.appearance.weekdayTextColor = UIColor(red: 0.071, green: 0.102, blue: 0.149, alpha: 1) calendar.appearance.weekdayTextColor = UIColor(red: 0.071, green: 0.102, blue: 0.149, alpha: 1)
//日历内容 默认颜色 //日历内容 默认颜色
calendar.appearance.titleDefaultColor = UIColor(red: 0.071, green: 0.102, blue: 0.149, alpha: 1) // calendar.appearance.titleDefaultColor = UIColor(red: 0.071, green: 0.102, blue: 0.149, alpha: 1)
//日历内容 字体 //日历内容 字体
calendar.appearance.titleFont = UIFont(name: "PingFangSC-Medium", size: 16) calendar.appearance.titleFont = UIFont(name: "PingFangSC-Medium", size: 16)
...@@ -59,9 +59,14 @@ class YHRangeDatePickerView: UIView,FSCalendarDataSource, FSCalendarDelegate, FS ...@@ -59,9 +59,14 @@ class YHRangeDatePickerView: UIView,FSCalendarDataSource, FSCalendarDelegate, FS
//日历内容 选择时 颜色 //日历内容 选择时 颜色
calendar.appearance.titleSelectionColor = .white calendar.appearance.titleSelectionColor = .white
calendar.appearance.subtitleSelectionColor = .white calendar.appearance.subtitleSelectionColor = .white
// calendar.appearance.todayColor = UIColor(red: 0, green: 0.275, blue: 0.706, alpha: 1)
// calendar.appearance.todaySelectionColor = .white
// calendar.appearance.titleTodayColor = UIColor(red: 0, green: 0.275, blue: 0.706, alpha: 1)
//非当月日期 颜色 //非当月日期 颜色
calendar.appearance.titlePlaceholderColor = UIColor(red: 0.071, green: 0.102, blue: 0.149, alpha: 0.7) calendar.appearance.titlePlaceholderColor = UIColor(red: 0.071, green: 0.102, blue: 0.149, alpha: 0.2)
//日期 横线 //日期 横线
calendar.appearance.separators = .none calendar.appearance.separators = .none
...@@ -116,13 +121,16 @@ extension YHRangeDatePickerView { ...@@ -116,13 +121,16 @@ extension YHRangeDatePickerView {
return nil return nil
} }
func calendar(_ calendar: FSCalendar, titleFor date: Date) -> String? {
return self.gregorian.isDateInToday(date) ? "今" : nil
}
func minimumDate(for calendar: FSCalendar) -> Date { func minimumDate(for calendar: FSCalendar) -> Date {
return (dateFormatter.date(from: "2023-07-01"))! return self.gregorian.date(byAdding: .day, value: -30, to: Date())!
} }
func maximumDate(for calendar: FSCalendar) -> Date { func maximumDate(for calendar: FSCalendar) -> Date {
return (dateFormatter.date(from: "2025-07-01"))! return self.gregorian.date(byAdding: .day, value: 365, to: Date())!
} }
func calendar(_ calendar: FSCalendar, cellFor date: Date, at monthPosition: FSCalendarMonthPosition) -> FSCalendarCell { func calendar(_ calendar: FSCalendar, cellFor date: Date, at monthPosition: FSCalendarMonthPosition) -> FSCalendarCell {
...@@ -134,9 +142,12 @@ extension YHRangeDatePickerView { ...@@ -134,9 +142,12 @@ extension YHRangeDatePickerView {
configureCell(cell, for: date, at: monthPosition) configureCell(cell, for: date, at: monthPosition)
} }
func calendar(_ calendar: FSCalendar, boundingRectWillChange bounds: CGRect, animated: Bool) {
self.calendar.frame.size.height = bounds.height
}
// MARK: - FSCalendarDelegate // MARK: - FSCalendarDelegate
func calendar(_ calendar: FSCalendar, shouldSelect date: Date, at monthPosition: FSCalendarMonthPosition) -> Bool { func calendar(_ calendar: FSCalendar, shouldSelect date: Date, at monthPosition: FSCalendarMonthPosition) -> Bool {
// return monthPosition == .current
return true return true
} }
...@@ -164,13 +175,6 @@ extension YHRangeDatePickerView { ...@@ -164,13 +175,6 @@ extension YHRangeDatePickerView {
configureVisibleCells() configureVisibleCells()
} }
// func calendar(_ calendar: FSCalendar, appearance: FSCalendarAppearance, eventDefaultColorsFor date: Date) -> [UIColor]? {
// if (gregorian.isDateInToday(date)) {
// return [UIColor.orange]
// }
// return [appearance.eventDefaultColor]
// }
} }
// MARK: - Private methods // MARK: - Private methods
...@@ -187,6 +191,7 @@ private extension YHRangeDatePickerView { ...@@ -187,6 +191,7 @@ private extension YHRangeDatePickerView {
func tapOneDate(_ date : Date) { func tapOneDate(_ date : Date) {
if startDate == nil { if startDate == nil {
startDate = date startDate = date
YHHUD.flash(message: "开始选择结束日期")
} else if endDate == nil { } else if endDate == nil {
// 比较结果 // 比较结果
let comparisonResult = gregorian.compare(startDate!, to: date, toGranularity: .day) let comparisonResult = gregorian.compare(startDate!, to: date, toGranularity: .day)
...@@ -208,6 +213,7 @@ private extension YHRangeDatePickerView { ...@@ -208,6 +213,7 @@ private extension YHRangeDatePickerView {
calendar.deselect(endDate!) calendar.deselect(endDate!)
startDate = date startDate = date
endDate = nil endDate = nil
YHHUD.flash(message: "开始选择结束日期")
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment