OOFormBaseView.swift 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. //
  2. // OOFormBaseView.swift
  3. // o2app
  4. //
  5. // Created by 刘振兴 on 2018/1/26.
  6. // Copyright © 2018年 zone. All rights reserved.
  7. //
  8. import UIKit
  9. protocol OOFormBaseUpdateViewProtocol {
  10. func updateViewModel(_ item:Any)
  11. }
  12. class OOFormBaseView: UIView,OOFormBaseUpdateViewProtocol {
  13. var model:OOFormBaseModel?
  14. private var theDate = Date()
  15. private let format = "yyyy年MM月dd日"
  16. func updateViewModel(_ item: Any) {
  17. }
  18. func datePickerTapped(_ title:String,_ dateType:UIDatePicker.Mode,_ format:String,_ textField:UITextField,callBackResult:((_ result:Date) -> Void)?) {
  19. let locale = Locale(identifier: "zh")
  20. var dateComponents = DateComponents()
  21. dateComponents.month = -12
  22. let threeMonthAgo = Calendar.current.date(byAdding: dateComponents, to: theDate)
  23. dateComponents.month = 12
  24. let nextYearMonthAgo = Calendar.current.date(byAdding: dateComponents, to: theDate)
  25. let datePicker = LWDatePickerDialog(textColor: .red,
  26. buttonColor: .red,
  27. font: UIFont.boldSystemFont(ofSize: 17),
  28. locale:locale ,
  29. showCancelButton: true)
  30. datePicker.show(title,
  31. doneButtonTitle: "确定",
  32. cancelButtonTitle: "取消",
  33. defaultDate: theDate,
  34. minimumDate: threeMonthAgo,
  35. maximumDate: nextYearMonthAgo,
  36. datePickerMode: dateType) { (date) in
  37. if let dt = date {
  38. self.theDate = dt
  39. let formatter = DateFormatter()
  40. formatter.dateFormat = format
  41. textField.text = formatter.string(from: dt)
  42. callBackResult!(dt)
  43. }
  44. }
  45. }
  46. }