// // 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 }() }