mirror of
https://github.com/confirmedcode/Lockdown-iOS.git
synced 2025-12-21 12:14:02 +01:00
79 lines
1.9 KiB
Swift
79 lines
1.9 KiB
Swift
//
|
||
// 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))
|
||
}
|
||
}
|
||
}
|