From c1d9dfe7f663bfc31f5d01881220915b251c2002 Mon Sep 17 00:00:00 2001 From: Fin Date: Tue, 27 May 2025 10:43:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=9B=BE=E7=89=87=E6=9C=AA?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E6=97=B6=E5=AF=BC=E8=87=B4=E7=9A=84=E5=B8=83?= =?UTF-8?q?=E5=B1=80=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- View/MessageList/MessageItemView.swift | 27 ++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/View/MessageList/MessageItemView.swift b/View/MessageList/MessageItemView.swift index 604332a..852d7ee 100644 --- a/View/MessageList/MessageItemView.swift +++ b/View/MessageList/MessageItemView.swift @@ -40,7 +40,7 @@ class MessageItemView: UIView { let imageView: UIImageView = { let imageView = UIImageView() - imageView.contentMode = .scaleAspectFill + imageView.contentMode = .scaleAspectFit imageView.layer.cornerRadius = 4 imageView.clipsToBounds = true return imageView @@ -168,13 +168,16 @@ extension MessageItemView { self.dateLabel.text = message.dateText if let image = message.image { imageView.isHidden = false - remakeImageViewConstraints(width: 0, height: 0) + // 图片未缓存时,使用的默认尺寸 + remakeImageViewConstraints(width: 200, height: 100) + // 移除图片查看器 + imageView.removeImageViewer() // loadDiskFileSynchronously imageView.kf.setImage(with: URL(string: image), options: [.targetCache(imageCache), .keepCurrentImageWhileLoading, .loadDiskFileSynchronously]) { [weak self] result in guard let self else { return } guard let image = try? result.get().image else { - self.imageView.isHidden = true + self.imageView.image = nil return } @@ -182,7 +185,8 @@ extension MessageItemView { let isDarkMode = UIScreen.main.traitCollection.userInterfaceStyle == .dark var options: [ImageViewerOption] = [ .closeIcon(UIImage(named: "back")!), - .theme(isDarkMode ? .dark : .light) + .theme(isDarkMode ? .dark : .light), + .contentMode(.scaleAspectFit) ] if #available(iOS 14.0, *) { options.append(.rightNavItemTitle(NSLocalizedString("save"), onTap: { [weak self] _ in @@ -246,3 +250,18 @@ extension MessageItemView { } } } + +extension UIImageView { + func removeImageViewer() { + var _tapRecognizer: UIGestureRecognizer? + gestureRecognizers?.forEach { + // 手势类名是 TapWithDataRecognizer + if "\(type(of: $0))" == "TapWithDataRecognizer" { + _tapRecognizer = $0 + } + } + if let _tapRecognizer { + self.removeGestureRecognizer(_tapRecognizer) + } + } +}