127 lines
4.5 KiB
Swift
127 lines
4.5 KiB
Swift
//
|
|
// 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
|
|
}()
|
|
}
|