From 7ccbc5568dff196ca0022bb19866ae950d99360b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=89=E7=A7=8B?= <497055328@qq.com> Date: Thu, 23 Jul 2026 15:40:51 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E6=97=85=E6=8B=8D?= =?UTF-8?q?=E7=9B=B8=E5=86=8C=E5=85=A5=E5=8F=A3=E4=B8=8E=E4=BA=8C=E7=BB=B4?= =?UTF-8?q?=E7=A0=81=E6=8F=90=E7=A4=BA=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TravelAlbumCodeDialogViewController.swift | 33 +++++++++++++++++-- .../TravelAlbumEntryViewController.swift | 13 ++++++-- 2 files changed, 41 insertions(+), 5 deletions(-) diff --git a/suixinkan/UI/TravelAlbum/TravelAlbumCodeDialogViewController.swift b/suixinkan/UI/TravelAlbum/TravelAlbumCodeDialogViewController.swift index cf93aa6..0b24858 100644 --- a/suixinkan/UI/TravelAlbum/TravelAlbumCodeDialogViewController.swift +++ b/suixinkan/UI/TravelAlbum/TravelAlbumCodeDialogViewController.swift @@ -20,7 +20,9 @@ final class TravelAlbumCodeDialogViewController: UIViewController { private let albumNameLabel = UILabel() private let qrImageView = UIImageView() private let loadingIndicator = UIActivityIndicatorView(style: .medium) - private let hintLabel = UILabel() + private let hintLabel = TravelAlbumCodeHintLabel( + contentInsets: UIEdgeInsets(top: 8, left: 16, bottom: 8, right: 16) + ) private let downloadButton = UIButton(type: .system) init(state: TravelAlbumEntryViewModel.AlbumCodeState) { @@ -117,8 +119,8 @@ final class TravelAlbumCodeDialogViewController: UIViewController { hintLabel.snp.makeConstraints { make in make.top.equalTo(qrImageView.snp.bottom).offset(18) make.centerX.equalToSuperview() - make.height.equalTo(34) make.leading.greaterThanOrEqualToSuperview().offset(20) + make.trailing.lessThanOrEqualToSuperview().offset(-20) } downloadButton.snp.makeConstraints { make in make.top.equalTo(hintLabel.snp.bottom).offset(20) @@ -160,3 +162,30 @@ final class TravelAlbumCodeDialogViewController: UIViewController { onDownload?() } } + +/// 为相册码提示文案提供与 Android 弹窗一致的内容留白。 +private final class TravelAlbumCodeHintLabel: UILabel { + private let contentInsets: UIEdgeInsets + + init(contentInsets: UIEdgeInsets) { + self.contentInsets = contentInsets + super.init(frame: .zero) + } + + @available(*, unavailable) + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + override func drawText(in rect: CGRect) { + super.drawText(in: rect.inset(by: contentInsets)) + } + + override var intrinsicContentSize: CGSize { + let size = super.intrinsicContentSize + return CGSize( + width: size.width + contentInsets.left + contentInsets.right, + height: size.height + contentInsets.top + contentInsets.bottom + ) + } +} diff --git a/suixinkan/UI/TravelAlbum/TravelAlbumEntryViewController.swift b/suixinkan/UI/TravelAlbum/TravelAlbumEntryViewController.swift index 782d74a..0f8eaee 100644 --- a/suixinkan/UI/TravelAlbum/TravelAlbumEntryViewController.swift +++ b/suixinkan/UI/TravelAlbum/TravelAlbumEntryViewController.swift @@ -184,7 +184,8 @@ extension TravelAlbumEntryViewController: UITableViewDelegate { /// 新建相册任务蓝色入口卡片。 private final class TravelAlbumHeroCard: UIControl { private let gradientLayer = CAGradientLayer() - private let plusView = UIImageView(image: UIImage(systemName: "plus")) + private let plusView = UIView() + private let plusImageView = UIImageView(image: UIImage(systemName: "plus")) private let titleLabel = UILabel() private let subtitleLabel = UILabel() private let arrowLabel = UILabel() @@ -202,10 +203,11 @@ private final class TravelAlbumHeroCard: UIControl { gradientLayer.endPoint = CGPoint(x: 1, y: 0.5) layer.insertSublayer(gradientLayer, at: 0) - plusView.tintColor = AppColor.primary - plusView.contentMode = .scaleAspectFit plusView.backgroundColor = .white plusView.layer.cornerRadius = 17 + plusView.clipsToBounds = true + plusImageView.tintColor = AppColor.primary + plusImageView.contentMode = .scaleAspectFit titleLabel.text = "新建相册任务" titleLabel.font = .systemFont(ofSize: 19, weight: .medium) @@ -218,6 +220,7 @@ private final class TravelAlbumHeroCard: UIControl { arrowLabel.font = .systemFont(ofSize: 36, weight: .light) addSubview(plusView) + plusView.addSubview(plusImageView) addSubview(titleLabel) addSubview(subtitleLabel) addSubview(arrowLabel) @@ -226,6 +229,10 @@ private final class TravelAlbumHeroCard: UIControl { make.centerY.equalToSuperview() make.size.equalTo(34) } + plusImageView.snp.makeConstraints { make in + make.center.equalToSuperview() + make.size.equalTo(26) + } titleLabel.snp.makeConstraints { make in make.top.equalToSuperview().offset(30) make.leading.equalTo(plusView.snp.trailing).offset(16)