mirror of
https://github.com/confirmedcode/Lockdown-iOS.git
synced 2026-03-02 18:23:49 +01:00
61 lines
1.3 KiB
Swift
61 lines
1.3 KiB
Swift
//
|
|
// RadioSwitcher.swift
|
|
// Lockdown
|
|
//
|
|
// Created by Pavel Vilbik on 22.06.23.
|
|
// Copyright © 2023 Confirmed Inc. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
class RadioSwitcher: UIView {
|
|
|
|
var isSelected = false {
|
|
didSet {
|
|
updateImageView()
|
|
}
|
|
}
|
|
var didSelect: ((Bool) -> Void)?
|
|
|
|
var selectedImage = UIImage(named: "selectedRadioSwitcher")
|
|
var unselectedImage = UIImage(named: "unselectedRadioSwitcher")
|
|
|
|
private lazy var imageView: UIImageView = {
|
|
let view = UIImageView(image: unselectedImage)
|
|
view.contentMode = .scaleAspectFit
|
|
return view
|
|
}()
|
|
|
|
override init(frame: CGRect) {
|
|
super.init(frame: frame)
|
|
configure()
|
|
}
|
|
|
|
required init?(coder: NSCoder) {
|
|
fatalError("init(coder:) has not been implemented")
|
|
}
|
|
|
|
func toggle() {
|
|
tapped()
|
|
}
|
|
|
|
private func configure() {
|
|
backgroundColor = .clear
|
|
|
|
addSubview(imageView)
|
|
imageView.anchors.edges.pin()
|
|
addGestureRecognizer(
|
|
UITapGestureRecognizer(target: self, action: #selector(tapped))
|
|
)
|
|
}
|
|
|
|
private func updateImageView() {
|
|
imageView.image = isSelected ? selectedImage : unselectedImage
|
|
}
|
|
|
|
@objc private func tapped() {
|
|
isSelected.toggle()
|
|
didSelect?(isSelected)
|
|
}
|
|
}
|