refactored out old code and reorganized
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
7770a49f6f
commit
beaa2b3a82
@ -31,6 +31,14 @@ open class DatePicker: EntryFieldBase {
|
|||||||
// MARK: - Private Properties
|
// MARK: - Private Properties
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
internal var minWidthDefault = 186.0
|
internal var minWidthDefault = 186.0
|
||||||
|
internal var popoverView: UIView!
|
||||||
|
internal var popoverVisible = false
|
||||||
|
internal var outsideTapGesture: UITapGestureRecognizer?
|
||||||
|
internal var outsidePanGesture: UIPanGestureRecognizer?
|
||||||
|
internal var overlayView = UIView().with {
|
||||||
|
$0.backgroundColor = .clear;
|
||||||
|
$0.isHidden = true
|
||||||
|
}
|
||||||
|
|
||||||
internal var bottomStackView: UIStackView = {
|
internal var bottomStackView: UIStackView = {
|
||||||
return UIStackView().with {
|
return UIStackView().with {
|
||||||
@ -109,8 +117,8 @@ open class DatePicker: EntryFieldBase {
|
|||||||
.publisher(for: UITapGestureRecognizer())
|
.publisher(for: UITapGestureRecognizer())
|
||||||
.sink { [weak self] _ in
|
.sink { [weak self] _ in
|
||||||
guard let self else { return }
|
guard let self else { return }
|
||||||
if self.isEnabled && !self.isReadOnly {
|
if isEnabled && !isReadOnly {
|
||||||
self.togglePicker()
|
showPopover()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.store(in: &subscribers)
|
.store(in: &subscribers)
|
||||||
@ -118,9 +126,6 @@ open class DatePicker: EntryFieldBase {
|
|||||||
NotificationCenter.default
|
NotificationCenter.default
|
||||||
.publisher(for: UIDevice.orientationDidChangeNotification).sink { [weak self] _ in
|
.publisher(for: UIDevice.orientationDidChangeNotification).sink { [weak self] _ in
|
||||||
guard let self else { return }
|
guard let self else { return }
|
||||||
popoverController?.dismiss(animated: true){ [weak self] in
|
|
||||||
guard let self else { return }
|
|
||||||
}
|
|
||||||
hidePopoverView()
|
hidePopoverView()
|
||||||
}
|
}
|
||||||
.store(in: &subscribers)
|
.store(in: &subscribers)
|
||||||
@ -175,49 +180,11 @@ open class DatePicker: EntryFieldBase {
|
|||||||
popoverController = nil
|
popoverController = nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private var overlayView = UIView().with {
|
|
||||||
$0.backgroundColor = .clear;
|
|
||||||
$0.isHidden = true
|
|
||||||
}
|
|
||||||
private var popoverView: UIView!
|
|
||||||
private var popoverVisible = false
|
|
||||||
private var outsideTapGesture: UITapGestureRecognizer?
|
|
||||||
private var outsidePanGesture: UIPanGestureRecognizer?
|
|
||||||
|
|
||||||
// internal func togglePicker() {
|
|
||||||
// calendar.activeDates = calendarModel.activeDates
|
|
||||||
// calendar.hideContainerBorder = calendarModel.hideContainerBorder
|
|
||||||
// calendar.hideCurrentDateIndicator = calendarModel.hideCurrentDateIndicator
|
|
||||||
// calendar.inactiveDates = calendarModel.inactiveDates
|
|
||||||
// calendar.indicators = calendarModel.indicators
|
|
||||||
// calendar.maxDate = calendarModel.maxDate
|
|
||||||
// calendar.minDate = calendarModel.minDate
|
|
||||||
// calendar.surface = calendarModel.surface
|
|
||||||
// calendar.setNeedsLayout()
|
|
||||||
// calendar.layoutIfNeeded()
|
|
||||||
// calendar.onChange = { [weak self] control in
|
|
||||||
// guard let self else { return }
|
|
||||||
// didSelect(control.selectedDate)
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// popoverController = ClearPopoverViewController(contentView: calendar,
|
|
||||||
// arrow: .any,
|
|
||||||
// sourceView: containerView,
|
|
||||||
// sourceRect: .init(x: 0, y: 0, width: 320, height: 45),
|
|
||||||
// spacing: VDSLayout.space1X)
|
|
||||||
// popoverController?.maxWidth = 320
|
|
||||||
// if let viewController = UIApplication.topViewController(), let popoverController {
|
|
||||||
// viewController.present(popoverController,
|
|
||||||
// animated: true,
|
|
||||||
// completion: nil)
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
extension DatePicker {
|
extension DatePicker {
|
||||||
|
|
||||||
private func togglePicker() {
|
private func showPopover() {
|
||||||
guard let viewController = UIApplication.topViewController(), let parentView = viewController.view else { return }
|
guard let viewController = UIApplication.topViewController(), let parentView = viewController.view else { return }
|
||||||
|
|
||||||
if popoverVisible {
|
if popoverVisible {
|
||||||
@ -286,7 +253,12 @@ extension DatePicker {
|
|||||||
popoverView.isHidden = false
|
popoverView.isHidden = false
|
||||||
popoverVisible = true
|
popoverVisible = true
|
||||||
|
|
||||||
UIView.animate(withDuration: 0.3, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0.2, options: .curveEaseOut, animations: { [weak self] in
|
UIView.animate(withDuration: 0.3,
|
||||||
|
delay: 0,
|
||||||
|
usingSpringWithDamping: 0.8,
|
||||||
|
initialSpringVelocity: 0.2,
|
||||||
|
options: .curveEaseOut,
|
||||||
|
animations: { [weak self] in
|
||||||
guard let self else { return }
|
guard let self else { return }
|
||||||
popoverView.alpha = 1
|
popoverView.alpha = 1
|
||||||
popoverView.transform = CGAffineTransform.identity
|
popoverView.transform = CGAffineTransform.identity
|
||||||
@ -301,13 +273,16 @@ extension DatePicker {
|
|||||||
|
|
||||||
outsideTapGesture = nil
|
outsideTapGesture = nil
|
||||||
outsidePanGesture = nil
|
outsidePanGesture = nil
|
||||||
UIView.animate(withDuration: 0.2, animations: {
|
UIView.animate(withDuration: 0.2,
|
||||||
self.popoverView.alpha = 0
|
animations: {[weak self] in
|
||||||
self.popoverView.transform = CGAffineTransform(scaleX: 0.9, y: 0.9)
|
guard let self else { return }
|
||||||
}) { _ in
|
popoverView.alpha = 0
|
||||||
self.popoverView.isHidden = true
|
popoverView.transform = CGAffineTransform(scaleX: 0.9, y: 0.9)
|
||||||
self.popoverView.removeFromSuperview()
|
}) { [weak self] _ in
|
||||||
self.popoverVisible = false
|
guard let self else { return }
|
||||||
|
popoverView.isHidden = true
|
||||||
|
popoverView.removeFromSuperview()
|
||||||
|
popoverVisible = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user