Files
featherVoice/TUIKit/TUICallKit/TUICallKit-Swift/View/Component/JoinGroupView/JoinInGroupCallUserCell.swift
2025-08-08 10:49:36 +08:00

69 lines
1.8 KiB
Swift

//
// JoinInGroupCallUserCell.swift
// TUICallKit-Swift
//
// Created by noah on 2024/2/27.
//
import Foundation
class JoinInGroupCallUserCell: UICollectionViewCell {
private var user: User = User()
private let userIcon = {
let imageView = UIImageView(frame: CGRect.zero)
imageView.contentMode = .scaleAspectFill
imageView.layer.masksToBounds = true
imageView.layer.cornerRadius = 4.0
if let image = TUICallKitCommon.getBundleImage(name: "default_user_icon") {
imageView.image = image
}
return imageView
}()
override init(frame: CGRect) {
super.init(frame: frame)
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
// MARK: UI Specification Processing
private var isViewReady: Bool = false
override func didMoveToWindow() {
super.didMoveToWindow()
if isViewReady { return }
constructViewHierarchy()
activateConstraints()
isViewReady = true
}
private func constructViewHierarchy() {
contentView.addSubview(userIcon)
}
private func activateConstraints() {
userIcon.snp.makeConstraints { make in
make.edges.equalTo(self.contentView)
}
}
func setModel(user: User) {
self.user = user
setUserIcon()
}
private func setUserIcon() {
let userImage: UIImage? = TUICallKitCommon.getBundleImage(name: "default_user_icon")
if user.avatar.value == "" {
guard let image = userImage else { return }
userIcon.image = image
} else {
userIcon.sd_setImage(with: URL(string: user.avatar.value), placeholderImage: userImage)
}
}
}