Files
yingmeng-ios-switf/yinmeng-ios/Modules/Home/HomeSearchRoomCell.swift

167 lines
6.1 KiB
Swift
Raw Normal View History

2024-03-22 11:54:23 +08:00
//
// HomeSearchRoomCell.swift
// yinmeng-ios
//
// Created by yinmeng on 2024/3/21.
2024-03-22 11:54:23 +08:00
//
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
}
}