// // CountryView.swift // Lockdown // // Created by Pavel Vilbik on 27.06.23. // Copyright © 2023 Confirmed Inc. All rights reserved. // import UIKit class CountryView: UIView { var didSelect: (() -> Void)? var emojiLabel: UILabel = { let label = UILabel() label.font = .semiboldLockdownFont(size: 36) label.numberOfLines = 0 label.textColor = .label return label }() var titleLabel: UILabel = { let label = UILabel() label.font = .semiboldLockdownFont(size: 16) label.numberOfLines = 0 label.textColor = .label return label }() var checkMark: UIImageView = { let configuration = UIImage.SymbolConfiguration(pointSize: 16, weight: .medium) let imageView = UIImageView( image: .init( systemName: "checkmark", withConfiguration: configuration ) ) imageView.tintColor = .tunnelsBlue imageView.contentMode = .center return imageView }() override init(frame: CGRect) { super.init(frame: frame) configure() } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } private func configure() { backgroundColor = .tableCellBackground layer.cornerRadius = 8 layer.borderWidth = 0 addSubview(emojiLabel) emojiLabel.anchors.leading.pin(inset: 20) emojiLabel.anchors.centerY.equal(anchors.centerY) emojiLabel.anchors.size.equal(.init(width: 36, height: 24)) addSubview(checkMark) checkMark.anchors.trailing.pin(inset: 22) checkMark.anchors.centerY.equal(anchors.centerY) checkMark.anchors.size.equal(.init(width: 15, height: 10)) addSubview(titleLabel) titleLabel.anchors.top.pin(inset: 18) titleLabel.anchors.bottom.pin(inset: 18) titleLabel.anchors.leading.spacing(28, to: emojiLabel.anchors.trailing) checkMark.anchors.leading.greaterThanOrEqual(titleLabel.anchors.trailing, constant: 8) addGestureRecognizer( UITapGestureRecognizer(target: self, action: #selector(tapped)) ) } @objc private func tapped() { didSelect?() } }