Files
yingmeng-ios-switf/yinmeng-ios/Modules/Home/View/HomeSearchRecordCell.swift

127 lines
4.5 KiB
Swift
Raw Normal View History

2024-04-03 20:06:02 +08:00
//
// HomeSearchRecordCell.swift
// yinmeng-ios
//
// Created by duoban on 2024/4/3.
//
import UIKit
import Nuke
class HomeSearchRecordCell: UICollectionViewCell {
override init(frame: CGRect) {
super.init(frame: frame)
setUILayout()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
private func setUILayout(){
backgroundColor = .white
layer.cornerRadius = UIDevice.scaleWidth(width: 26)/2
layer.masksToBounds = true
contentView.addSubview(avatarView)
contentView.addSubview(nameView)
contentView.addSubview(bgImageView)
bgImageView.addSubview(imageView)
bgImageView.addSubview(liveView)
avatarView.snp.makeConstraints { make in
make.width.height.equalTo(UIDevice.scaleWidth(width: 56))
make.top.centerX.equalTo(contentView)
}
bgImageView.snp.makeConstraints { make in
make.leading.trailing.bottom.equalTo(avatarView)
make.height.equalTo(UIDevice.scaleWidth(width: 14))
}
imageView.snp.makeConstraints { make in
make.leading.equalTo(UIDevice.scaleWidth(width: 15))
make.centerY.equalTo(bgImageView.snp.centerY).offset(-1)
make.width.equalTo(UIDevice.scaleWidth(width: 8))
make.height.equalTo(UIDevice.scaleWidth(width: 7))
}
liveView.snp.makeConstraints { make in
make.leading.equalTo(bgImageView.snp.trailing).offset((UIDevice.scaleWidth(width: 2)))
make.centerY.equalTo(bgImageView)
}
nameView.snp.makeConstraints { make in
make.leading.trailing.equalTo(avatarView)
make.top.equalTo(avatarView.snp.bottom).offset(UIDevice.scaleWidth(width: 4))
}
}
//MARK: -
var liveModel:YinHomeSearchLiveRoomModel? = nil{
didSet{
guard let _liveModel = liveModel else { return }
Nuke.loadImage(with: _liveModel.avatar, into: avatarView, completion: nil)
nameView.text = _liveModel.nick
bgImageView.isHidden = _liveModel.roomUid <= 0
imageView.isHidden = _liveModel.roomUid <= 0
if _liveModel.roomUid > 0{
imageView.animationImages = imageList
imageView.animationDuration = 0.5
imageView.startAnimating()
}else{
imageView.animationImages = []
imageView.stopAnimating()
}
}
}
var roomModel:YinMineFansModel? = nil{
didSet{
guard let _roomModel = roomModel else { return}
Nuke.loadImage(with:_roomModel.avatar , into: avatarView, completion: nil)
nameView.text = _roomModel.title
bgImageView.isHidden = true
}
}
private lazy var avatarView:UIImageView = {
let _avatarView = UIImageView()
_avatarView.layer.masksToBounds = true
_avatarView.layer.cornerRadius = UIDevice.scaleWidth(width: 56)/2
_avatarView.layer.borderColor = UIColor.white.cgColor
_avatarView.layer.borderWidth = 1
return _avatarView
}()
private lazy var nameView:UILabel = {
let _nameView = UILabel.getCustomLabel(font: UIFont.getScaleFont(ofSize: 12, weight: .regular),color:ThemeColor(hexStr: "#282828"),textAlignment: .center)
return _nameView
}()
private lazy var bgImageView:UIImageView = {
let _bgImageView = UIImageView()
let image = UIImage.gradient([ThemeColor(hexStr: "#FFA936"),ThemeColor(hexStr: "#FFCB47")],size: CGSize(width: UIDevice.scaleWidth(width: 52), height: UIDevice.scaleWidth(width: 14)), direction: .horizontal)
_bgImageView.image = image
return _bgImageView
}()
private lazy var liveView:UILabel = {
let _liveView = UILabel.getCustomLabel(text: "直播",font: UIFont.getScaleFont(ofSize: 8, weight: .medium),color: .white)
return _liveView
}()
private lazy var imageView:UIImageView = {
let _imageView = UIImageView()
_imageView.isUserInteractionEnabled = true
_imageView.animationRepeatCount = 0
return _imageView
}()
private lazy var imageList:[UIImage] = {
var _imageList:[UIImage] = []
for i in 0..<10{
let name = "yin_paly_image\(i)"
if let image = UIImage(named: name){
_imageList.append(image)
}
}
return _imageList
}()
}