Visual_Novel_iOS/crush/Crush/Src/Components/UI/Flag/EPIconFlagView.swift

67 lines
1.7 KiB
Swift
Raw Normal View History

2025-10-09 10:29:35 +00:00
//
// EPIconFlagView.swift
// Crush
//
// Created by Leon on 2025/7/25.
//
import UIKit
import SnapKit
class EPIconFlagView: UIImageView {
// MARK: - Properties
private let icon: UIImageView
// MARK: - Initialization
override init(frame: CGRect) {
icon = UIImageView()
super.init(frame: frame)
// Setup constraints using SnapKit
snp.makeConstraints { make in
make.height.equalTo(24)
}
addSubview(icon)
icon.snp.makeConstraints { make in
make.size.equalTo(CGSize(width: 12, height: 12))
make.left.equalTo(6)
make.right.equalTo(-6)
make.centerY.equalToSuperview()
}
contentMode = .scaleToFill
}
@available(*, unavailable)
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
// MARK: - Public Methods
func setupRightTopLockStyle() {
configIconLocked(true)
layer.cornerRadius = 4
layer.masksToBounds = true
// Right-top and left-bottom corners rounded
// layer.maskedCorners = [.layerMaxXMinYCorner, .layerMinXMaxYCorner]
}
func configIconLocked(_ lock: Bool) {
if lock {
icon.image = MWIconFont.image(fromIcon: .iconPrivate, size: .init(width: 16, height: 16), color: .text)
backgroundColor = .c.csedn
image = nil
} else {
icon.image = MWIconFont.image(fromIcon: .iconPublic, size: .init(width: 16, height: 16), color: .text)
let gradient = CLSystemToken.gradient(token: .cpgn)
image = gradient.toImage(size: CGSize(width: 40, height: 32))
}
}
}