// // HomeSearchRoomCell.swift // yinmeng-ios // // Created by yinmeng on 2024/3/21. // import UIKit import Nuke class HomeSearchRoomCell: UITableViewCell { override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { super.init(style: style, reuseIdentifier: reuseIdentifier) setUILayout() } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } private func setUILayout(){ selectionStyle = .none backgroundColor = .clear contentView.addSubview(avatarView) contentView.addSubview(nickStackView) contentView.addSubview(idView) contentView.addSubview(numView) contentView.addSubview(dividerView) numView.addSubview(onlienTextView) numView.addSubview(bgOnlineView) nickStackView.addArrangedSubview(textVeiw) nickStackView.addArrangedSubview(genderView) avatarView.snp.makeConstraints { make in make.width.height.equalTo(UIDevice.scaleWidth(width: 45)) make.leading.equalTo(UIDevice.scaleWidth(width: 15)) make.centerY.equalTo(contentView) } nickStackView.snp.makeConstraints { make in make.leading.equalTo(avatarView.snp.trailing).offset((UIDevice.scaleWidth(width: 13))) make.height.equalTo(UIDevice.scaleWidth(width: 20)) make.bottom.equalTo(avatarView.snp.centerY).offset(-UIDevice.scaleWidth(width: 1.5)) } idView.snp.makeConstraints { make in make.leading.equalTo(nickStackView) make.top.equalTo(avatarView.snp.centerY).offset(UIDevice.scaleWidth(width: 1.5)) } dividerView.snp.makeConstraints { make in make.leading.equalTo(nickStackView) make.trailing.equalTo(-UIDevice.scaleWidth(width: 15)) make.bottom.equalTo(contentView) make.height.equalTo(UIDevice.scaleWidth(width: 1)) } numView.snp.makeConstraints { make in make.height.equalTo(UIDevice.scaleWidth(width: 18)) make.trailing.equalTo(-UIDevice.scaleWidth(width: 15)) make.centerY.equalTo(contentView) make.leading.equalTo(bgOnlineView.snp.leading).offset(-UIDevice.scaleWidth(width: 8)) } onlienTextView.snp.makeConstraints { make in make.centerY.equalTo(numView) make.trailing.equalTo(numView.snp.trailing).offset(-UIDevice.scaleWidth(width:5)) } bgOnlineView.snp.makeConstraints { make in make.width.equalTo(UIDevice.scaleWidth(width: 10)) make.height.equalTo(UIDevice.scaleWidth(width: 9)) make.centerY.equalTo(numView) make.trailing.equalTo(onlienTextView.snp.leading).offset(-UIDevice.scaleWidth(width:3)) } } func setModel(model:HomeSearchRoomModel,type:Int){ Nuke.loadImage(with: model.avatar, into: avatarView, completion: nil) textVeiw.text = type == 0 ? model.title : model.nick idView.text = "ID:" + model.erbanNo genderView.image = model.gender == .Boy ? UIImage(named: "yin_plane_star_man") : UIImage(named: "yin_plane_star__woman") if type == 0{ if model.onlineNum > 100{ onlienTextView.text = "\(model.onlineNum)" }else{ onlienTextView.text = " \(model.onlineNum) " } numView.isHidden = !model.valid return } onlienTextView.text = "直播中" numView.isHidden = model.roomUid.count <= 0 } //MARK: - 懒加载 private lazy var avatarView:UIImageView = { let _avatarView = UIImageView() _avatarView.layer.cornerRadius = UIDevice.scaleWidth(width: 45)/2 _avatarView.layer.masksToBounds = true _avatarView.contentMode = .scaleAspectFill return _avatarView }() private lazy var nickStackView:UIStackView = { let _nickStackView = UIStackView() _nickStackView.axis = .horizontal _nickStackView.distribution = .fill _nickStackView.alignment = .center _nickStackView.spacing = UIDevice.scaleWidth(width: 2) return _nickStackView }() private lazy var textVeiw:UILabel = { let _textVeiw = UILabel.getCustomLabel(font: UIFont.getScaleFont(ofSize: 15, weight: .regular),color: ThemeColor(hexStr: "#878B9C")) return _textVeiw }() private lazy var genderView:UIImageView = { let _genderView = UIImageView() _genderView.isUserInteractionEnabled = true return _genderView }() private lazy var idView:UILabel = { let _idView = UILabel.getCustomLabel(font: UIFont.getScaleFont(ofSize: 13, weight: .regular),color: ThemeColor(hexStr: "#BDBFD0")) return _idView }() private lazy var dividerView:UIView = { let _dividerView = UIView() _dividerView.backgroundColor = ThemeColor(hexStr: "#E8E8E8") return _dividerView }() private lazy var numView:UIView = { let _numView = UIView() _numView.backgroundColor = .clear _numView.layer.masksToBounds = true _numView.layer.cornerRadius = UIDevice.scaleWidth(width: 18)/2 _numView.layer.borderColor = ThemeColor(hexStr: "#248CFE").cgColor _numView.layer.borderWidth = 1 return _numView }() private lazy var bgOnlineView:UIImageView = { let _bgOnlineView = UIImageView() _bgOnlineView.image = UIImage(named: "home_search_online_icon") return _bgOnlineView }() private lazy var onlienTextView:UILabel = { let _onlienTextView = UILabel.getCustomLabel(text: "直播中",font: UIFont.getScaleFont(ofSize: 10, weight: .regular),color: ThemeColor(hexStr: "#248CFE")) return _onlienTextView }() override func awakeFromNib() { super.awakeFromNib() // Initialization code } override func setSelected(_ selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) // Configure the view for the selected state } }