JLChen
2021-04-30 a5247b61d585627a1a7b1e1f35f34de9f0af9fba
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
//
//  Copyright © 2020 dahua. All rights reserved.
//
 
import UIKit
import SnapKit
 
enum DHWiFiConfigHeaderClickType {
    case fiveGDesc
    case wifiDesc
}
 
protocol DHWiFiConfigHeaderDelegate: class {
    func iconDidClicked(type: DHWiFiConfigHeaderClickType)
}
 
class DHWiFiConfigHeader: UITableViewHeaderFooterView {
    
    weak var delegate: DHWiFiConfigHeaderDelegate?
    
    public var isAddNetwordTitle: Bool = true {
        didSet {
            descButton.setImage(isAddNetwordTitle ? UIImage(named: "adddevice_icon_help") :  UIImage(named: ""), for: .normal)
            descButton.setTitle(isAddNetwordTitle ? "device_manager_select_wifi".lc_T : "device_manager_connected_wifi".lc_T, for: .normal)
//            widthConstraint?.update(offset: isAddNetwordTitle ? 130 : 100)
            if isAddNetwordTitle {
                descButton.addTarget(self, action: #selector(wifiHelpClicked), for: .touchUpInside)
                descButton.setUIButtonImageRightWithTitleLeftUI()
            }
        }
    }
    // MARK: - life cycle
   
    override init(reuseIdentifier: String?) {
        super.init(reuseIdentifier: reuseIdentifier)
        
        loadSubviews()
    }
    
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    // MARK: - private method
    
    private func loadSubviews() {
        addSubview(titleImageView)
        titleImageView.snp.makeConstraints { (make) in
            make.centerX.equalTo(self)
            make.top.equalTo(topPadding25)
        }
        
        addSubview(titleLabel)
        titleLabel.snp.makeConstraints { (make) in
            make.centerX.equalTo(self).offset(-padding3)
            make.top.equalTo(titleImageView.snp.bottom).offset(topPadding14)
        }
        
        addSubview(iconImageView)
        iconImageView.snp.makeConstraints { (make) in
            make.left.equalTo(titleLabel.snp.right)
            make.centerY.equalTo(titleLabel)
        }
        
        addSubview(descButton)
        descButton.snp.makeConstraints { (make) in
            make.left.equalTo(self).offset(padding14)
//            widthConstraint = make.width.equalTo(100).constraint
            make.bottom.equalTo(self).offset(-bottompPadding5)
        }
    }
    
    @objc func iconDidClicked() {
        delegate?.iconDidClicked(type: .fiveGDesc)
    }
    
    @objc func wifiHelpClicked() {
        delegate?.iconDidClicked(type: .wifiDesc)
    }
    
    // MARK: - lazy ui
    
    // todo: no picture
    
    lazy var titleImageView: UIImageView = {
        let titleImageView = UIImageView()
        titleImageView.image = UIImage(named: "adddevice_icon_wifipassword")
        
        return titleImageView
    }()
    
    lazy var titleLabel: UILabel = {
        let titleLabel = UILabel()
        titleLabel.font = UIFont.dhFont_t5()
//        titleLabel.textColor = UIColor.dhcolor_c8()
        titleLabel.text = "add_device_device_not_support_5g".lc_T
        
        return titleLabel
    }()
    
    lazy var iconImageView: UIImageView = {
        let iconImageView = UIImageView()
        iconImageView.image = UIImage(named: "adddevice_icon_help")
        let tap = UITapGestureRecognizer(target: self, action: #selector(iconDidClicked))
        iconImageView.addGestureRecognizer(tap)
        iconImageView.isUserInteractionEnabled = true
        
        return iconImageView
    }()
    
    lazy var descButton: UIButton = {
        let descButton = UIButton()
        descButton.titleLabel?.textAlignment = .left
        descButton.setTitleColor(UIColor.black, for: .normal)
        descButton.titleLabel?.font = UIFont.dhFont_t5()
        descButton.setTitle("device_manager_connected_wifi".lc_T, for: .normal)
        return descButton
    }()
    
    private let topPadding25: CGFloat = 25.0
    private let topPadding14: CGFloat = 14.0
    private let padding14: CGFloat = 14.0
    private let bottompPadding5: CGFloat = 5.0
    private let padding3: CGFloat = 3.0
    
    private var widthConstraint: Constraint?
}