JLChen
2021-05-18 a869383e163a18cdedcf587383c1eca043129754
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
//
//  Copyright © 2019 dahua. All rights reserved.
//
 
import UIKit
 
class DHScanMenuCell: UIView {
    
    typealias CellClickedBlock = (_ tag: Int) -> ()
    
    var cellClick: CellClickedBlock?
    
    var cellImageView: UIImageView!
    
    var cellTitleLabel: UILabel!
    
    init(title: String, imageName: String, clickedHandle:@escaping CellClickedBlock) {
        super.init(frame: CGRect())
        self.isUserInteractionEnabled = true
        self.cellClick = clickedHandle
        loadSubview(title, imageName)
        addGesture()
    }
    
    private func loadSubview(_ title: String, _ imageName: String) {
        cellImageView = UIImageView()
        cellImageView.image = UIImage.init(named: imageName)
        cellImageView.contentMode = .scaleAspectFit
        self.addSubview(cellImageView)
        
        cellTitleLabel = UILabel()
        cellTitleLabel.text = title
        cellTitleLabel.textColor = UIColor.white
        cellTitleLabel.textAlignment = .center
        cellTitleLabel.font = UIFont.boldSystemFont(ofSize: 16.0)
        self.addSubview(cellTitleLabel)
    }
    
    func addGesture() {
        // 点击手势
        let tap = UITapGestureRecognizer.init(target: self, action: #selector(tapGestureClick))
        self.addGestureRecognizer(tap)
    }
    
    override func layoutSubviews() {
        super.layoutSubviews()
        
        cellImageView.snp.remakeConstraints { (make) in
            make.centerX.equalToSuperview()
            if let image = cellImageView.image {
                make.size.equalTo(CGSize.init(width: image.size.width, height: image.size.height))
            } else {
                make.size.equalTo(CGSize.init(width: 10.0, height: 30.0))
            }
            make.top.equalToSuperview().offset(15.0)
        }
        
        cellTitleLabel.snp.remakeConstraints { (make) in
            make.top.equalTo(cellImageView.snp.bottom).offset(10.0)
            make.centerX.equalToSuperview()
        }
    }
    
    @objc func tapGestureClick() {
        self.cellClick?(self.tag)
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}