Newer
Older
public enum Size {
case small
case medium
case large
}
let imageView = UIImageView()
let monogramLabel = UILabel()
let iconImageView = UIImageView()
layer.masksToBounds = true
backgroundColor = Asset.brandPrimary.color
imageView.contentMode = .scaleAspectFill
monogramLabel.textColor = Asset.neutralWhite.color
addSubview(monogramLabel)
imageView.snp.makeConstraints {
$0.edges.equalToSuperview()
}
monogramLabel.snp.makeConstraints {
$0.center.equalToSuperview()
}
iconImageView.snp.makeConstraints {
$0.center.equalToSuperview()
}
required init?(coder: NSCoder) { nil }
imageView.image = nil
monogramLabel.text = nil
iconImageView.image = nil
public func setupProfile(title: String, image: Data?, size: AvatarView.Size) {
iconImageView.image = nil
monogramLabel.text = title
.trimmingCharacters(in: .whitespacesAndNewlines)
.replacingOccurrences(of: " ", with: "")
.prefix(2)
.uppercased()
monogramLabel.text = "\(title.prefix(2))".uppercased()
// TODO: What are the font sizes and corner radius for small/medium avatars?
switch size {
case .small:
layer.cornerRadius = 13.0
monogramLabel.font = Fonts.Mulish.semiBold.font(size: 14.0)
case .medium:
layer.cornerRadius = 13.0
monogramLabel.font = Fonts.Mulish.semiBold.font(size: 14.0)
case .large:
layer.cornerRadius = 18.0
monogramLabel.font = Fonts.Mulish.semiBold.font(size: 16.0)
}
guard let image = image else {
imageView.image = nil
return
}
public func setupGroup(size: AvatarView.Size) {
switch size {
case .small:
layer.cornerRadius = 13.0
case .medium:
layer.cornerRadius = 13.0
case .large:
layer.cornerRadius = 18.0
imageView.image = nil
monogramLabel.text = nil
iconImageView.image = Asset.sharedGroup.image