123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291 |
- //
- // 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
- }
-
- }
|