53 lines
1.4 KiB
Swift
53 lines
1.4 KiB
Swift
//
|
|
// TickButton.swift
|
|
// Crush
|
|
//
|
|
// Created by Leon on 2025/7/19.
|
|
//
|
|
|
|
import UIKit
|
|
import SnapKit
|
|
|
|
class TickButton: CLButton {
|
|
// MARK: - Properties
|
|
private var normalTintColor: UIColor
|
|
private var disableTintColor: UIColor
|
|
|
|
// MARK: - Initialization
|
|
override init(frame: CGRect) {
|
|
normalTintColor = .c.ctpn
|
|
disableTintColor = .c.ctpd
|
|
|
|
super.init(frame: frame)
|
|
tickmark()
|
|
}
|
|
|
|
@available(*, unavailable)
|
|
required init?(coder: NSCoder) {
|
|
fatalError("init(coder:) has not been implemented")
|
|
}
|
|
|
|
// MARK: - Setup
|
|
func tickmark() {
|
|
layer.cornerRadius = 16
|
|
clipsToBounds = true
|
|
|
|
let tick = MWIconFont.image(fromIcon: .select, size: CGSize(width: 16, height: 16), color: .c.ctpn)
|
|
setImage(tick, for: .normal)
|
|
setBackgroundImage(UIImage.withColor(color: .c.cpn, size: CGSize(width: 10, height: 10)), for: .normal)
|
|
setBackgroundImage(UIImage.withColor(color: .c.cpd, size: CGSize(width: 10, height: 10)), for: .disabled)
|
|
setBackgroundImage(UIImage.withColor(color: .c.cpp, size: CGSize(width: 10, height: 10)), for: .highlighted)
|
|
|
|
snp.makeConstraints { make in
|
|
make.height.equalTo(32)
|
|
make.width.equalTo(52)
|
|
}
|
|
}
|
|
|
|
override var isEnabled: Bool {
|
|
didSet {
|
|
tintColor = isEnabled ? normalTintColor : disableTintColor
|
|
}
|
|
}
|
|
}
|