|
|
@@ -25,17 +25,22 @@ extension LNCommonAlertView {
|
|
|
class LNCommonAlertView: UIView {
|
|
|
private let background = UIView()
|
|
|
private let container = UIView()
|
|
|
+ private let closeButton = UIButton()
|
|
|
+ var showCloseButton = true {
|
|
|
+ didSet {
|
|
|
+ closeButton.isHidden = !showCloseButton
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
private let miniScale = 0.01
|
|
|
private let animateDuration = 0.15
|
|
|
|
|
|
- let textViews = UIStackView()
|
|
|
+ private let textViews = UIStackView()
|
|
|
+ private let messageView = UIStackView()
|
|
|
+ private let buttonViews = UIStackView()
|
|
|
+
|
|
|
let titleLabel = UILabel()
|
|
|
- let messageView = UIStackView()
|
|
|
let messageLabel = UILabel()
|
|
|
- let subMessageLabel = UILabel()
|
|
|
-
|
|
|
- let buttonViews = UIStackView()
|
|
|
|
|
|
var touchOutsideCancel = true
|
|
|
|
|
|
@@ -46,29 +51,43 @@ class LNCommonAlertView: UIView {
|
|
|
}
|
|
|
|
|
|
func showConfirm(_ title: String = .init(key: "A00002"),
|
|
|
- handler: @escaping () -> Void) {
|
|
|
+ autoDismiss: Bool = true,
|
|
|
+ handler: @escaping () -> Void) {
|
|
|
let button = buildConfirmButton()
|
|
|
button.setTitle(title, for: .normal)
|
|
|
button.addAction(UIAction(handler: { [weak self] _ in
|
|
|
guard let self else { return }
|
|
|
- dismiss()
|
|
|
+ if autoDismiss {
|
|
|
+ dismiss()
|
|
|
+ }
|
|
|
handler()
|
|
|
}), for: .touchUpInside)
|
|
|
buttonViews.insertArrangedSubview(button, at: 0)
|
|
|
}
|
|
|
|
|
|
func showCancel(_ title: String = .init(key: "A00003"),
|
|
|
- handler: (() -> Void)? = nil) {
|
|
|
+ autoDismiss: Bool = true,
|
|
|
+ handler: (() -> Void)? = nil) {
|
|
|
let button = buildCancelButton()
|
|
|
button.setTitle(title, for: .normal)
|
|
|
button.addAction(UIAction(handler: { [weak self] _ in
|
|
|
guard let self else { return }
|
|
|
- dismiss()
|
|
|
+ if autoDismiss {
|
|
|
+ dismiss()
|
|
|
+ }
|
|
|
handler?()
|
|
|
}), for: .touchUpInside)
|
|
|
buttonViews.addArrangedSubview(button)
|
|
|
}
|
|
|
|
|
|
+ func showCustomAction(_ view: UIView) {
|
|
|
+ buttonViews.addArrangedSubview(view)
|
|
|
+ }
|
|
|
+
|
|
|
+ func showCustomMessage(_ view: UIView) {
|
|
|
+ messageView.addArrangedSubview(view)
|
|
|
+ }
|
|
|
+
|
|
|
required init?(coder: NSCoder) {
|
|
|
fatalError("init(coder:) has not been implemented")
|
|
|
}
|
|
|
@@ -91,8 +110,7 @@ extension LNCommonAlertView {
|
|
|
|
|
|
titleLabel.isHidden = titleLabel.text?.isEmpty != false
|
|
|
messageLabel.isHidden = messageLabel.text?.isEmpty != false
|
|
|
- subMessageLabel.isHidden = subMessageLabel.text?.isEmpty != false
|
|
|
- messageView.isHidden = messageLabel.isHidden && subMessageLabel.isHidden
|
|
|
+ messageView.isHidden = messageLabel.isHidden
|
|
|
|
|
|
layoutIfNeeded()
|
|
|
|
|
|
@@ -139,7 +157,6 @@ extension LNCommonAlertView {
|
|
|
make.width.equalToSuperview().multipliedBy(0.8)
|
|
|
}
|
|
|
|
|
|
- let closeButton = UIButton()
|
|
|
closeButton.setImage(.init(systemName: "xmark"), for: .normal)
|
|
|
closeButton.tintColor = .text_2
|
|
|
closeButton.addAction(UIAction(handler: { [weak self] _ in
|
|
|
@@ -177,12 +194,6 @@ extension LNCommonAlertView {
|
|
|
messageLabel.numberOfLines = 0
|
|
|
messageView.addArrangedSubview(messageLabel)
|
|
|
|
|
|
- subMessageLabel.font = .body_xs
|
|
|
- subMessageLabel.textColor = .text_4
|
|
|
- subMessageLabel.textAlignment = .center
|
|
|
- subMessageLabel.numberOfLines = 0
|
|
|
- messageView.addArrangedSubview(subMessageLabel)
|
|
|
-
|
|
|
buttonViews.axis = .vertical
|
|
|
buttonViews.spacing = 16
|
|
|
container.addSubview(buttonViews)
|