167 lines
6.1 KiB
Swift
167 lines
6.1 KiB
Swift
//
|
|
// 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
|
|
}
|
|
|
|
}
|