SSAlarmHeader.swift 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. //
  2. // SSAlarmHeader.swift
  3. // SolarStationSwift
  4. //
  5. // Created by weclouds on 2018/10/28.
  6. // Copyright © 2018 weclouds. All rights reserved.
  7. //
  8. import UIKit
  9. extension UIButton{
  10. func ss_setTitle(_ title :String,state:UIControlState){
  11. self.set(image: UIImage(named: "时间选择下拉"), title: title, titlePosition: .left, additionalSpacing: 15, state: state)
  12. }
  13. func setRight() {
  14. self.setImage(UIImage(named: "时间选择下拉"), for: .normal)
  15. self.titleEdgeInsets = UIEdgeInsetsMake(0, -((self.imageView?.size.width)!), 0, (self.imageView?.image?.size.width)!)
  16. self.imageEdgeInsets = UIEdgeInsetsMake(0, (self.titleLabel?.bounds.size.width)!, 0, -(self.titleLabel?.bounds.size.width)!)
  17. }
  18. }
  19. class SSAlarmHeader: UIView {
  20. var timeStr :String?{
  21. didSet{
  22. timeBtn.ss_setTitle(timeStr!, state: .normal)
  23. }
  24. }
  25. var typeStr :String?{
  26. didSet{
  27. typeBtn.ss_setTitle(typeStr!, state: .normal)
  28. }
  29. }
  30. var markerStr :String?{
  31. didSet{
  32. markerBtn.ss_setTitle(markerStr!, state: .normal)
  33. }
  34. }
  35. var deviceStr :String?{
  36. didSet{
  37. deviceBtn.ss_setTitle(deviceStr!, state: .normal)
  38. }
  39. }
  40. var callTime: (()->Void)?
  41. var callType : (()->Void)?
  42. var callMarker :(()->Void)?
  43. var callDevice : (()->Void)?
  44. lazy var timeBtn :UIButton = {
  45. let timeBtn = UIButton(type: .custom)
  46. timeBtn.ss_setTitle("时间", state: .normal)
  47. timeBtn.setTitleColor(UIColor.gray, for: .normal)
  48. timeBtn.titleLabel?.font = UIFont(name: KFontName, size: 13)
  49. timeBtn.addTarget(self, action: #selector(clickTime), for: .touchUpInside)
  50. return timeBtn
  51. }()
  52. lazy var typeBtn : UIButton = {
  53. let typeBtn = UIButton(type: .custom)
  54. typeBtn.ss_setTitle("类型", state: .normal)
  55. typeBtn.setTitleColor(UIColor.gray, for: .normal)
  56. typeBtn.titleLabel?.font = UIFont(name: KFontName, size: 13)
  57. typeBtn.addTarget(self, action: #selector(clickType), for: .touchUpInside)
  58. return typeBtn
  59. }()
  60. lazy var markerBtn: UIButton = {
  61. let markerBtn = UIButton(type: .custom)
  62. markerBtn.ss_setTitle("标注", state: .normal)
  63. markerBtn.setTitleColor(UIColor.gray, for: .normal)
  64. markerBtn.titleLabel?.font = UIFont(name: KFontName, size: 13)
  65. markerBtn.addTarget(self, action: #selector(clickMarker), for: .touchUpInside)
  66. return markerBtn
  67. }()
  68. lazy var deviceBtn: UIButton = {
  69. let deviceBtn = UIButton(type: .custom)
  70. deviceBtn.ss_setTitle("全部设备", state: .normal)
  71. deviceBtn.setTitleColor(UIColor.gray, for: .normal)
  72. deviceBtn.titleLabel?.font = UIFont(name: KFontName, size: 13)
  73. deviceBtn.addTarget(self, action: #selector(clickDevice), for: .touchUpInside)
  74. return deviceBtn
  75. }()
  76. override init(frame: CGRect) {
  77. super.init(frame: frame)
  78. createUI()
  79. }
  80. required init?(coder aDecoder: NSCoder) {
  81. fatalError("init(coder:) has not been implemented")
  82. }
  83. }
  84. extension SSAlarmHeader{
  85. //MARK : 创建UI
  86. func createUI() {
  87. //背景颜色
  88. backgroundColor = UIColor.white
  89. let space = ( KSCREENWIDTH - 3 ) / 4
  90. //分割线
  91. for i in 0..<3 {
  92. let lineView = UIView(frame: CGRect(x: space * CGFloat(i + 1), y: 10, width: 1, height: 29))
  93. lineView.backgroundColor = UIColor(hexString: "E8E8E8")
  94. addSubview(lineView)
  95. }
  96. //底部分割线
  97. let bottomLine = UIView()
  98. bottomLine.backgroundColor = UIColor(hexString: "E8E8E8")
  99. addSubview(bottomLine)
  100. bottomLine.snp.makeConstraints { (make) in
  101. make.leading.trailing.equalToSuperview()
  102. make.bottom.equalToSuperview()
  103. make.height.equalTo(1)
  104. }
  105. addSubview(timeBtn)
  106. addSubview(typeBtn)
  107. addSubview(markerBtn)
  108. addSubview(deviceBtn)
  109. timeBtn.snp.makeConstraints { (make) in
  110. make.leading.equalToSuperview().offset(6)
  111. make.top.bottom.equalToSuperview()
  112. make.width.equalTo((space - 12))
  113. }
  114. typeBtn.snp.makeConstraints { (make) in
  115. make.leading.equalToSuperview().offset(6 + space )
  116. make.top.bottom.equalToSuperview()
  117. make.width.equalTo((space - 12))
  118. }
  119. markerBtn.snp.makeConstraints { (make) in
  120. make.leading.equalToSuperview().offset(6 + 2 * space )
  121. make.top.bottom.equalToSuperview()
  122. make.width.equalTo((space - 12))
  123. }
  124. deviceBtn.snp.makeConstraints { (make) in
  125. make.leading.equalToSuperview().offset(6 + 3 * space)
  126. make.top.bottom.equalToSuperview()
  127. make.width.equalTo((space - 12))
  128. }
  129. }
  130. @objc func clickTime(_ sender:UIButton) {
  131. //sender.isSelected = !sender.isSelected
  132. log.debug("time")
  133. callTime!()
  134. }
  135. @objc func clickType(_ sender:UIButton) {
  136. // sender.isSelected = !sender.isSelected
  137. log.debug("type")
  138. callType!()
  139. }
  140. @objc func clickMarker(_ sender : UIButton) {
  141. //sender.isSelected = !sender.isSelected
  142. log.debug("marker")
  143. callMarker!()
  144. }
  145. @objc func clickDevice(_ sender:UIButton) {
  146. //sender.isSelected = !sender.isSelected
  147. log.debug("device")
  148. callDevice!()
  149. }
  150. }