// // IHDashBoardHeaderView.swift // Inhealth // // Created by weclouds on 2019/12/10. // Copyright © 2019 weclouds. All rights reserved. // import UIKit import Kingfisher class IHDashBoardHeaderView: UIView { var cond_code:String?{ didSet{ if let cond_code = cond_code { weatherIcon.image = UIImage(named: "\(cond_code).png") } } } var cond_txt :String?{ didSet{ if let cond_txt = self.cond_txt { self.weatherLabel.text = cond_txt.isBlanck == true ? "没数据" : cond_txt self.weatherLabel.textAlignment = .center } } } var level:String?{ didSet{ if let level = self.level { self.levelLabel.text = level let str_width = level.ga_widthForComment(font:UIFont(name: Alibaba_PuHuiTi_Heavy, size: 14)! , height: 24) self.levelLabel.snp.remakeConstraints { (make) in make.centerY.equalToSuperview() if KSCREENWIDTH == 375 { make.right.equalTo(-30) }else{ make.right.equalTo(-50) } make.width.equalTo(str_width + 20) make.height.equalTo(24) } // self.layoutIfNeeded() // self.setConer() DispatchQueue.main.asyncAfter(deadline: .now() + 0) { self.setConer() } } } } var averageAir:String?{ didSet{ self.airQualityValueLabel.text = self.averageAir } } var callback:(()->Void)? lazy var bigLabel: UILabel = { let label = UILabel() label.textColor = UIColor(hexString: "#333333") label.font = UIFont(name: Alibaba_PuHuiTi_Heavy, size: 28) let period = IHUtil.share.currentPeriod() switch period { case .normal: label.text = "您好," case .morning: label.text = "早上好," case .afternoon: label.text = "下午好," case .evening: label.text = "晚上好," } return label }() lazy var guestNameLabel: UILabel = { let label = UILabel() label.textColor = UIColor(hexString: "#657085") label.font = UIFont(name: PingFangSC_Semibold, size: 19) label.text = AppShare.username return label }() lazy var guestIcon: UIImageView = { let imageView = UIImageView() // imageView.backgroundColor = .green let avatar = AppShare.mLoginData?.avatar ?? "" imageView.netImage(url: avatar, placeholder: "酒店头像") imageView.isUserInteractionEnabled = true let tap = UITapGestureRecognizer(target: self, action: #selector(iconTap)) imageView.addGestureRecognizer(tap) return imageView }() lazy var toolbar: UIView = { let toolbar = UIView() // toolbar.backgroundColor = UIColor(patternImage: UIImage(named: "首页底色")!) return toolbar }() lazy var airQualityValueLabel: UILabel = { let airQualityValueLabel = UILabel() airQualityValueLabel.text = "83" airQualityValueLabel.textColor = UIColor(hexString: "#FFFFFF") if KSCREENWIDTH <= 375 { airQualityValueLabel.font = UIFont(name: Alibaba_PuHuiTi_Medium, size: 35) }else{ airQualityValueLabel.font = UIFont(name: Alibaba_PuHuiTi_Medium, size: 40) } return airQualityValueLabel }() lazy var airQualityLabel: UILabel = { let airQualityValueLabel = UILabel() airQualityValueLabel.text = "地市环境指数" airQualityValueLabel.numberOfLines = 2 airQualityValueLabel.textColor = UIColor(hexString: "#FFFFFF") airQualityValueLabel.font = UIFont(name: PingFangSC_Medium, size: 12) return airQualityValueLabel }() lazy var levelLabel: UILabel = { let levelLabel = UILabel() levelLabel.text = "好" levelLabel.textAlignment = .center // levelLabel.backgroundColor = UIColor(hexString: "#FFFFFF") levelLabel.backgroundColor = .white //#573F95 #05CFAB levelLabel.textColor = UIColor(hexString: "#573F95") levelLabel.font = UIFont(name: Alibaba_PuHuiTi_Heavy, size: 14) return levelLabel }() lazy var weatherIcon :UIImageView = { let icon = UIImageView() return icon }() lazy var weatherLabel: UILabel = { let weatherLabel = UILabel() weatherLabel.textColor = UIColor(hexString: "#FFFFFF") weatherLabel.font = UIFont(name: PingFangSC_Heavy, size: 14) //weatherLabel.backgroundColor = .black weatherLabel.adjustsFontSizeToFitWidth = true // 设置允许总体自适应字体大小 weatherLabel.minimumScaleFactor = 0.1// 设置允许文本显示的最小字体 weatherLabel.numberOfLines = 2 weatherLabel.textAlignment = .center return weatherLabel }() override init(frame: CGRect) { super.init(frame: frame) createUI() log.debug("头视图") // guestIcon.netImage(url: AppShare.mLoginData!.avatar!, placeholder: nil) } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } func createUI() { addSubview(bigLabel) addSubview(guestNameLabel) addSubview(guestIcon) addSubview(toolbar) toolbar.addSubview(airQualityValueLabel) toolbar.addSubview(airQualityLabel) toolbar.addSubview(levelLabel) bigLabel.snp.makeConstraints { (make) in make.left.equalToSuperview().offset(20) make.top.equalToSuperview().offset(10) make.height.equalTo(39) } guestNameLabel.snp.makeConstraints { (make) in make.left.equalToSuperview().offset(26) make.top.equalTo(bigLabel.snp.bottom).offset(2) } guestIcon.snp.makeConstraints { (make) in make.right.equalToSuperview().offset(-20) make.top.equalToSuperview().offset(10) make.height.width.equalTo(60) } guestIcon.layer.masksToBounds = true guestIcon.layer.cornerRadius = 30 toolbar.snp.makeConstraints { (make) in make.top.equalTo(guestNameLabel.snp.bottom).offset(24) make.left.equalToSuperview().offset(7) make.right.equalToSuperview().offset(-7) make.height.equalTo(105) } let bgImageView = UIImageView(image: UIImage(named: "首页底色")) toolbar.insertSubview(bgImageView, at: 0) // bgImageView.contentMode = .scaleToFill bgImageView.snp.makeConstraints { (make) in make.top.bottom.left.right.equalToSuperview() } airQualityValueLabel.snp.makeConstraints { (make) in make.left.equalToSuperview().offset(26 + 85) make.top.equalToSuperview().offset(32 + 10) make.height.equalTo(50) } airQualityLabel.snp.makeConstraints { (make) in make.top.equalToSuperview().offset(15) make.left.equalToSuperview().offset(26 + 85) make.width.equalTo(196) // make.height.equalTo(25) } levelLabel.snp.makeConstraints { (make) in make.centerY.equalToSuperview() make.right.equalTo(-50) make.width.equalTo(60) make.height.equalTo(24) } // self.layoutIfNeeded() // self.setConer() DispatchQueue.main.asyncAfter(deadline: .now() + 0) { self.setConer() } let dashView = IHVerticalDashLine(frame: CGRect(x: 85, y: 20, width: 0.5, height: 100 - 45), lineLength: 5, lineSpacing: 3, lineColor: .white) toolbar.addSubview(dashView) toolbar.addSubview(weatherIcon) toolbar.addSubview(weatherLabel) weatherIcon.snp.makeConstraints { (make) in make.top.equalToSuperview().offset(18) make.right.equalTo(dashView.snp.left).offset(-20) make.height.width.equalTo(30) } weatherLabel.snp.makeConstraints { (make) in make.top.equalTo(weatherIcon.snp.bottom).offset(2) make.right.equalTo(dashView.snp.right).offset(-5) make.width.equalTo(85 - 10 - 10) make.bottom.equalToSuperview().offset(-14) } self.layoutIfNeeded() } func configRectCorner(view: UIView, corner: UIRectCorner, radii: CGSize) -> CALayer { let maskPath = UIBezierPath.init(roundedRect: view.bounds, byRoundingCorners: corner, cornerRadii: radii) let maskLayer = CAShapeLayer.init() maskLayer.frame = view.bounds maskLayer.path = maskPath.cgPath return maskLayer } @objc func iconTap() { // log.debug("iconTap") if let callback = callback { callback() } } //设置三个角 func setConer() { let corners: UIRectCorner = [.bottomLeft,.topLeft,.topRight] let maskPath = UIBezierPath(roundedRect: self.levelLabel.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: 12, height: 12)) let maskLayer = CAShapeLayer() maskLayer.frame = self.levelLabel.bounds maskLayer.path = maskPath.cgPath self.levelLabel.layer.mask = maskLayer } }