JCDatePickerViwe.swift 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. //
  2. // JCDatePickerViwe.swift
  3. // YHRSS
  4. //
  5. // Created by deng on 2017/3/23.
  6. // Copyright © 2017年 dengyonghao. All rights reserved.
  7. //
  8. import UIKit
  9. @objc public protocol JCDatePickerViweDelegate: NSObjectProtocol {
  10. @objc optional func datePicker(finish finishButton: UIButton, date: Date)
  11. @objc optional func datePicker(cancel cancelButton: UIButton, date: Date)
  12. }
  13. class JCDatePickerViwe: UIView {
  14. open weak var delegate: JCDatePickerViweDelegate?
  15. override init(frame: CGRect) {
  16. super.init(frame: frame)
  17. _init()
  18. }
  19. required init?(coder aDecoder: NSCoder) {
  20. fatalError("init(coder:) has not been implemented")
  21. }
  22. private lazy var cancelButton: UIButton = {
  23. var cancelButton = UIButton()
  24. cancelButton.layer.borderWidth = 0.5
  25. cancelButton.layer.borderColor = UIColor.gray.cgColor
  26. cancelButton.setTitle("取消", for: .normal)
  27. cancelButton.setTitleColor(.black, for: .normal)
  28. cancelButton.addTarget(self, action: #selector(_cancel(_:)), for: .touchUpInside)
  29. return cancelButton
  30. }()
  31. private lazy var finishButton: UIButton = {
  32. var finishButton = UIButton()
  33. finishButton.layer.borderWidth = 0.5
  34. finishButton.layer.borderColor = UIColor.gray.cgColor
  35. finishButton.setTitle("完成", for: .normal)
  36. finishButton.setTitleColor(.black, for: .normal)
  37. finishButton.addTarget(self, action: #selector(_finish(_:)), for: .touchUpInside)
  38. return finishButton
  39. }()
  40. private lazy var datePicker: UIDatePicker = {
  41. var datePicker = UIDatePicker()
  42. datePicker.calendar = Calendar.current
  43. datePicker.datePickerMode = .date
  44. datePicker.locale = Locale(identifier: "zh_CN")
  45. return datePicker
  46. }()
  47. //MARK: - private func
  48. private func _init() {
  49. // 216 + 40
  50. backgroundColor = .white
  51. addSubview(finishButton)
  52. addSubview(cancelButton)
  53. addSubview(datePicker)
  54. addConstraint(_JCLayoutConstraintMake(cancelButton, .left, .equal, self, .left))
  55. addConstraint(_JCLayoutConstraintMake(cancelButton, .right, .equal, self, .centerX))
  56. addConstraint(_JCLayoutConstraintMake(cancelButton, .top, .equal, self, .top))
  57. addConstraint(_JCLayoutConstraintMake(cancelButton, .height, .equal, nil, .notAnAttribute, 40))
  58. addConstraint(_JCLayoutConstraintMake(finishButton, .left, .equal, self, .centerX))
  59. addConstraint(_JCLayoutConstraintMake(finishButton, .right, .equal, self, .right))
  60. addConstraint(_JCLayoutConstraintMake(finishButton, .top, .equal, self, .top))
  61. addConstraint(_JCLayoutConstraintMake(finishButton, .height, .equal, nil, .notAnAttribute, 40))
  62. addConstraint(_JCLayoutConstraintMake(datePicker, .left, .equal, self, .left, 8))
  63. addConstraint(_JCLayoutConstraintMake(datePicker, .right, .equal, self, .right, -8))
  64. addConstraint(_JCLayoutConstraintMake(datePicker, .top, .equal, finishButton, .bottom))
  65. addConstraint(_JCLayoutConstraintMake(datePicker, .height, .equal, nil, .notAnAttribute, 216))
  66. }
  67. //MARK: - click event
  68. func _cancel(_ sender: UIButton) {
  69. delegate?.datePicker?(cancel: sender, date: datePicker.date)
  70. }
  71. func _finish(_ sender: UIButton) {
  72. delegate?.datePicker?(finish: sender, date: datePicker.date)
  73. }
  74. }