// // FeedbackSuccessView.swift // QuickLocation // import UIKit final class FeedbackSuccessView: UIView { private let cardView = UIView() override init(frame: CGRect) { super.init(frame: frame) setupUI() } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } private func setupUI() { backgroundColor = UIColor.black.withAlphaComponent(0.66) let pointerView = UIView() pointerView.backgroundColor = .white pointerView.transform = CGAffineTransform(rotationAngle: .pi / 4) addSubview(pointerView) pointerView.layoutChain.centerX().centerY(self, offset: 94).width(28).height(28) cardView.backgroundColor = .white cardView.layer.cornerRadius = 36 addSubview(cardView) cardView.layoutChain.centerX().centerY(self, offset: -8).width(280).height(208) let headerImageView = UIImageView(image: UIImage(named: "Mine/feedback_success_header")) headerImageView.contentMode = .scaleToFill headerImageView.layer.cornerRadius = 36 headerImageView.layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMinYCorner] headerImageView.clipsToBounds = true cardView.addSubview(headerImageView) headerImageView.layoutChain.top().left().right().height(100) let iconView = UIImageView(image: UIImage(named: "Mine/feedback_success_icon")) iconView.contentMode = .scaleAspectFit cardView.addSubview(iconView) iconView.layoutChain.top(-60).centerX().width(120).height(120) let titleLabel = UILabel() titleLabel.text = "反馈提交成功" titleLabel.font = .systemFont(ofSize: 24, weight: .semibold) titleLabel.textColor = UIColor(hexStr: "#1D1D1D") titleLabel.textAlignment = .center cardView.addSubview(titleLabel) titleLabel.layoutChain.top(78).left(16).right(16) let detailLabel = UILabel() detailLabel.text = "感谢您的反馈,我们会及时查看并妥\n善处理相关问题" detailLabel.font = .systemFont(ofSize: 15, weight: .medium) detailLabel.textColor = UIColor(hexStr: "#767676") detailLabel.textAlignment = .center detailLabel.numberOfLines = 2 detailLabel.lineBreakMode = .byWordWrapping cardView.addSubview(detailLabel) detailLabel.layoutChain.topToBottomOfView(titleLabel, offset: 22).left(24).right(24) } func show(in superview: UIView) { frame = superview.bounds autoresizingMask = [.flexibleWidth, .flexibleHeight] alpha = 0 cardView.transform = CGAffineTransform(scaleX: 0.9, y: 0.9) superview.addSubview(self) UIView.animate(withDuration: 0.24, delay: 0, options: .curveEaseOut) { self.alpha = 1 self.cardView.transform = .identity } } func dismiss(completion: @escaping () -> Void) { UIView.animate(withDuration: 0.2, animations: { self.alpha = 0 self.cardView.transform = CGAffineTransform(scaleX: 0.96, y: 0.96) }, completion: { _ in self.removeFromSuperview() completion() }) } }