50 lines
1.4 KiB
Swift
50 lines
1.4 KiB
Swift
//
|
|
// OrderActionButton.swift
|
|
// suixinkan
|
|
//
|
|
|
|
import SnapKit
|
|
import UIKit
|
|
|
|
/// 订单卡片操作按钮,对齐 Android `AppButton` 在订单页的样式。
|
|
final class OrderActionButton: UIButton {
|
|
|
|
enum Style {
|
|
case destructiveLight
|
|
case primaryFilled
|
|
case primaryLight
|
|
case dangerFilled
|
|
}
|
|
|
|
init(title: String, style: Style) {
|
|
super.init(frame: .zero)
|
|
setTitle(title, for: .normal)
|
|
titleLabel?.font = .app(.subtitle)
|
|
layer.cornerRadius = AppRadius.sm
|
|
clipsToBounds = true
|
|
switch style {
|
|
case .destructiveLight:
|
|
setTitleColor(AppColor.danger, for: .normal)
|
|
backgroundColor = AppColor.dangerBackground
|
|
case .primaryFilled:
|
|
setTitleColor(.white, for: .normal)
|
|
backgroundColor = AppColor.primary
|
|
case .primaryLight:
|
|
setTitleColor(AppColor.primary, for: .normal)
|
|
backgroundColor = OrderTokens.chipBackground
|
|
layer.cornerRadius = AppRadius.lg
|
|
case .dangerFilled:
|
|
setTitleColor(.white, for: .normal)
|
|
backgroundColor = AppColor.danger
|
|
}
|
|
snp.makeConstraints { make in
|
|
make.height.equalTo(OrderTokens.actionButtonHeight)
|
|
}
|
|
}
|
|
|
|
@available(*, unavailable)
|
|
required init?(coder: NSCoder) {
|
|
fatalError("init(coder:) has not been implemented")
|
|
}
|
|
}
|