Files
lockdown-iOS-mirror/LockdowniOS/BulletView.swift
2023-06-08 09:58:23 +03:00

79 lines
1.9 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
//
// BulletView.swift
// LockdownSandbox
//
// Created by Алишер Ахметжанов on 27.04.2023.
//
import UIKit
struct BulletViewModel {
let image: UIImage
let title: String
let highlightedStrings: [String]
init(
image: UIImage,
title: String,
highlightedStrings: [String] = []
) {
self.image = image
self.title = title
self.highlightedStrings = highlightedStrings
}
}
final class BulletView: UIView {
private lazy var bulletImage: UIImageView = {
let image = UIImageView()
image.contentMode = .left
image.anchors.width.equal(24)
return image
}()
lazy var titleLabel: UILabel = {
let label = UILabel()
label.textColor = .white
label.font = fontMedium15
label.textAlignment = .left
label.numberOfLines = 0
return label
}()
lazy var stackView: UIStackView = {
let stackView = UIStackView()
stackView.addArrangedSubview(bulletImage)
stackView.addArrangedSubview(titleLabel)
stackView.axis = .horizontal
stackView.distribution = .fill
stackView.alignment = .top
stackView.spacing = 8
return stackView
}()
//MARK: Initialization
override init(frame: CGRect) {
super.init(frame: frame)
configureUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
//MARK: Functions
private func configureUI() {
addSubview(stackView)
stackView.anchors.edges.pin()
}
func configure(with model: BulletViewModel) {
bulletImage.image = model.image
titleLabel.text = model.title
model.highlightedStrings.forEach {
titleLabel.highlight($0, font: .boldLockdownFont(size: 15))
}
}
}