|
|
@@ -12,12 +12,12 @@ import SnapKit
|
|
|
|
|
|
var allToast = NSHashTable<UIView>(options: .weakMemory)
|
|
|
|
|
|
-func showToast(_ toast: String?) {
|
|
|
+func showToast(_ toast: String?, icon: UIImage? = nil) {
|
|
|
guard let toast, !toast.isEmpty else { return }
|
|
|
|
|
|
runOnMain {
|
|
|
let view = LNToastView()
|
|
|
- view.show(toast)
|
|
|
+ view.show(toast, icon: icon)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -26,6 +26,7 @@ func cleanToasts() {
|
|
|
}
|
|
|
|
|
|
class LNToastView: UIView {
|
|
|
+ private let iconView = UIImageView()
|
|
|
private let textLabel = UILabel()
|
|
|
|
|
|
override init(frame: CGRect) {
|
|
|
@@ -34,8 +35,10 @@ class LNToastView: UIView {
|
|
|
setupViews()
|
|
|
}
|
|
|
|
|
|
- func show(_ toast: String) {
|
|
|
+ func show(_ toast: String, icon: UIImage? = nil) {
|
|
|
textLabel.text = toast
|
|
|
+ iconView.image = icon
|
|
|
+ iconView.isHidden = icon == nil
|
|
|
|
|
|
guard let window = UIView.appKeyWindow else { return }
|
|
|
window.addSubview(self)
|
|
|
@@ -73,14 +76,24 @@ extension LNToastView {
|
|
|
layer.cornerRadius = 18
|
|
|
backgroundColor = .black.withAlphaComponent(0.8)
|
|
|
|
|
|
+ let stackView = UIStackView()
|
|
|
+ stackView.spacing = 4
|
|
|
+ stackView.axis = .vertical
|
|
|
+ stackView.alignment = .center
|
|
|
+ addSubview(stackView)
|
|
|
+ stackView.snp.makeConstraints { make in
|
|
|
+ make.horizontalEdges.equalToSuperview().inset(16)
|
|
|
+ make.verticalEdges.equalToSuperview().inset(12)
|
|
|
+ }
|
|
|
+
|
|
|
+ stackView.addArrangedSubview(iconView)
|
|
|
+ iconView.snp.makeConstraints { make in
|
|
|
+ make.width.height.equalTo(32)
|
|
|
+ }
|
|
|
+
|
|
|
textLabel.font = .body_m
|
|
|
textLabel.textColor = .text_1
|
|
|
textLabel.numberOfLines = 0
|
|
|
- addSubview(textLabel)
|
|
|
- textLabel.snp.makeConstraints { make in
|
|
|
- make.center.equalToSuperview()
|
|
|
- make.leading.equalToSuperview().offset(16)
|
|
|
- make.top.equalToSuperview().offset(12)
|
|
|
- }
|
|
|
+ stackView.addArrangedSubview(textLabel)
|
|
|
}
|
|
|
}
|