CNLiveDigitalResumePreviewSixCell.swift 10.6 KB
//
//  CNLiveDigitalResumePreviewSixCell.swift
//  metaCode
//
//  Created by zx on 2024/8/7.
//  数字简历-Six 自我介绍cell

import Foundation
import Kingfisher
import SnapKit

//cell高度变化
typealias vitaePreviewSixCellChangedBlockActionBlock = (_ cell: CNLiveDigitalResumePreviewSixCell ,_ cellHeight:CGFloat, _ isExpand:Bool) -> Void

class CNLiveDigitalResumePreviewSixCell: UITableViewCell {
    var vitaePreviewSixCellChangedBlock:vitaePreviewSixCellChangedBlockActionBlock?

    //_vitaeMdl
    var _vitaeMdl : CNLiveVitaeModel?
    var vitaeMdl : CNLiveVitaeModel? {
        get{
            _vitaeMdl
        }
        set{
            _vitaeMdl = newValue!
            setupNewUI(model: _vitaeMdl!)
        }
    }

    lazy var whiteView :UIView = {
        let whiteView = UIView(frame: CGRect(x: 15, y:15, width: KSreenWidth-30, height: DefaultPreViewCellHeight))
        whiteView.backgroundColor = .white
        whiteView.layer.cornerRadius = 12
        whiteView.clipsToBounds = true
        return whiteView
    }()
    lazy var myIdentityTitleLabel: UILabel = {
        let titleLabel = UILabel()
        titleLabel.textColor = HexColor("#333333")
        titleLabel.textAlignment = .center
        titleLabel.text = "自我介绍"
        titleLabel.font = BoldFont_16
        return titleLabel
    }()
    lazy var nameIconImgView :UIImageView = {
        let iconImgView = UIImageView(frame: CGRect(x: 15, y: 0, width: 25, height: 25))
        iconImgView.contentMode = .scaleAspectFit
        iconImgView.image = UIImage(named: "mine_jianli_preview_jianjie")
        return iconImgView
    }()
    ///工作内容描述
    lazy var jianjieLabel: UILabel = {
        let titleLabel = UILabel.init(frame: CGRectMake(50, 162, KSreenWidth-60, 40))
        titleLabel.textColor = HexColor("#999999")
        titleLabel.textAlignment = .left
        titleLabel.font = Font_14
        titleLabel.backgroundColor = .clear// UIColor(red:0.98, green:0.98, blue:0.98, alpha:1.00)
        titleLabel.text = ""
        titleLabel.numberOfLines = 0
        var lines = titleLabel.getRealLabelTextLines()
        let height = titleLabel.qmui_lineHeight
        if lines > 2 {
            lines = 2
        }
        titleLabel.height = height*CGFloat(lines)
        return titleLabel
    }()
    //展开,收起
    lazy var expandBtn: UIButton = {
        let expandBtn = UIButton.init(type: .custom)
        expandBtn.backgroundColor = .clear
        
        expandBtn.frame = CGRect(x: self.jianjieLabel.right-60, y: self.jianjieLabel.bottom+10, width: 60, height: 30)
        expandBtn.setTitle("更多", for: .normal)
        expandBtn.setTitle("收起", for: .selected)

        expandBtn.setTitleColor(HexColor("#1B64FE"), for: .normal)
        expandBtn.setImage(UIImage(named: "homepage_unfold"), for: .normal)
        expandBtn.setImage(UIImage(named: "homepage_fold"), for: .selected)
        expandBtn.titleLabel?.font = Font_14
        expandBtn.setupButtonImageAndTitlePossitionWith(padding: 5, style: .right)
        expandBtn.addTarget(self, action: #selector(expandBtnAction), for: .touchUpInside)
        return expandBtn
    }()
    lazy var zhengshuNoDescTitleLabel: UILabel = {
        let titleLabel = UILabel()
        titleLabel.textColor = HexColor("#999999")
        titleLabel.textAlignment = .left
        titleLabel.text = "还没有添加自我介绍"
        titleLabel.font = Font_12
        return titleLabel
    }()
    lazy var zhengshuNoIconImgView :UIImageView = {
        let iconImgView = UIImageView(frame: CGRect(x: 18, y: 0, width: 60, height: 45))
        iconImgView.contentMode = .scaleAspectFit
        iconImgView.image = UIImage(named: "mine_jianli_noJianjie")
        return iconImgView
    }()

    lazy var zhengshuBtn: UIButton = {
        let  closeBtn = UIButton(type: .custom)
        closeBtn.setTitle("管理自我介绍", for: .normal)
        closeBtn.setTitleColor(HexColor("#1961FE"), for: .normal)
        closeBtn.titleLabel?.font = BoldFont_14
        closeBtn.layer.borderColor = HexColor("#1961FE")?.cgColor
        closeBtn.layer.borderWidth = 0.5
        closeBtn.layer.cornerRadius = 6
        closeBtn.clipsToBounds = true
        closeBtn.addTarget(self, action: #selector(zhengshuBtnAction), for: .touchUpInside)
        return closeBtn
    }()

    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
        self.contentView.backgroundColor = .clear
        self.backgroundColor = .clear
        self.selectionStyle = .none
        
        self.contentView.addSubview(self.whiteView)
        self.whiteView.snp.makeConstraints { make in
            make.top.equalTo(15)
            make.bottom.equalToSuperview()
            make.left.equalTo(15)
            make.right.equalToSuperview().offset(-15)
        }
        
        self.whiteView.addSubview(self.myIdentityTitleLabel)
        self.myIdentityTitleLabel.snp.makeConstraints { make in
            make.top.equalToSuperview().offset(adapt_length(length: 15))
            make.left.equalTo(adapt_length(length: 15))
        }
        self.whiteView.addSubview(self.nameIconImgView)
        self.nameIconImgView.snp.makeConstraints { make in
            make.top.equalTo(self.myIdentityTitleLabel.snp.bottom).offset(15)
            make.left.equalTo(15)
            make.width.height.equalTo(25)
        }
        self.whiteView.addSubview(self.jianjieLabel)
        self.jianjieLabel.snp.makeConstraints { make in
            make.top.equalTo(self.nameIconImgView.snp.top)
            make.left.equalTo(self.nameIconImgView.snp.right).offset(10)
            make.right.equalToSuperview().offset(-20)
        }
        self.whiteView.addSubview(self.expandBtn)
        self.expandBtn.snp.makeConstraints { make in
            make.top.equalTo(self.jianjieLabel.snp.bottom)
            make.right.equalTo(self.jianjieLabel.snp.right)
            make.width.equalTo(60)
            make.height.equalTo(30)
        }

        
        let lines = jianjieLabel.getRealLabelTextLines()
        if lines <= 2{
            self.expandBtn.isHidden = true
        }else{
            self.expandBtn.isHidden = false
        }
        self.whiteView.addSubview(self.zhengshuBtn)
        self.zhengshuBtn.snp.makeConstraints { make in
            make.centerX.equalToSuperview()
            make.bottom.equalToSuperview().offset(-20)
            make.width.equalTo(114)
            make.height.equalTo(34)
        }
        
        self.whiteView.addSubview(self.zhengshuNoDescTitleLabel)
        self.zhengshuNoDescTitleLabel.snp.makeConstraints { make in
            make.centerX.equalToSuperview()
            make.bottom.equalTo(self.zhengshuBtn.snp.top).offset(-10)
        }
        self.whiteView.addSubview(self.zhengshuNoIconImgView)
        self.zhengshuNoIconImgView.snp.makeConstraints { make in
            make.centerX.equalToSuperview()
            make.bottom.equalTo(self.zhengshuNoDescTitleLabel.snp.top).offset(-10)
            make.width.equalTo(60)
            make.height.equalTo(45)
        }

        self.nameIconImgView.isHidden = true
        self.jianjieLabel.isHidden = true
    }
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    func setupNewUI(model:CNLiveVitaeModel){
        if model.vitae?.selfIntroduction.count == 0{
            self.zhengshuNoIconImgView.isHidden = false
            self.zhengshuNoDescTitleLabel.isHidden = false
        }else{
            self.zhengshuNoIconImgView.isHidden = true
            self.zhengshuNoDescTitleLabel.isHidden = true
            self.nameIconImgView.isHidden = false
            self.jianjieLabel.isHidden = false
            self.jianjieLabel.text = model.vitae?.selfIntroduction//"描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述"//
            let lines = jianjieLabel.getRealLabelTextLines()
            let height = jianjieLabel.qmui_lineHeight
            if lines <= 2{
                self.expandBtn.isHidden = true
            }else{
                self.expandBtn.isHidden = false
            }
            
            var jienjieH:CGFloat = 0
            if model.vitae!.isExpand{
                //展开状态
                jienjieH = height*CGFloat(lines)
                self.jianjieLabel.numberOfLines = 0
            }else{
                //收起状态
                if lines <= 2{
                    //小于2行,按实际行数
                    jienjieH = CGFloat(lines)*height+2
                }else{
                    //大于2行, 显示2行
                    jienjieH = 2*height+2
                }
                self.jianjieLabel.numberOfLines = 2
            }
            self.expandBtn.isSelected = model.vitae!.isExpand
            self.jianjieLabel.snp.remakeConstraints { make in
                make.top.equalTo(self.myIdentityTitleLabel.snp.bottom).offset(10)
                make.left.equalTo(self.nameIconImgView.snp.right).offset(10)
                make.right.equalToSuperview().offset(-20)
                make.height.equalTo(jienjieH)
            }
            self.expandBtn.top = self.jianjieLabel.top+jienjieH
        }
    }
    
    
    // MARK: - Action
    @objc func expandBtnAction(button:UIButton){
        button.isSelected = !button.isSelected
        let lines = jianjieLabel.getRealLabelTextLines()
        let height = jianjieLabel.qmui_lineHeight
        
        var jienjieH:CGFloat = 0
        if button.isSelected{
            //文本收起状态,点击展开
            jienjieH = CGFloat(lines)*height
        }else{
            //文本展开状态,点击收起
            jienjieH = 2*height+2
        }
        self.jianjieLabel.snp.remakeConstraints { make in
            make.top.equalTo(self.myIdentityTitleLabel.snp.bottom).offset(10)
            make.left.equalTo(self.nameIconImgView.snp.right).offset(10)
            make.right.equalToSuperview().offset(-20)
            make.height.equalTo(jienjieH)
        }
        self.vitaePreviewSixCellChangedBlock!(self, 60 + jienjieH, button.isSelected)
        
        self.expandBtn.top = self.jianjieLabel.top + jienjieH

    }
    //跳转 自我简介页面
    @objc func zhengshuBtnAction(){
        let vc = CNLiveDigitalResumePreViewMineJianJieController()
        vc.introduce = self.vitaeMdl?.vitae?.selfIntroduction ?? ""
        navigationViewController().pushViewController(vc, animated: true)
    }
        
}