Просмотр исходного кода

restrict the image height of an image message to 80% of the screen size

cyberta 5 лет назад
Родитель
Сommit
9027fcb897
1 измененных файлов с 16 добавлено и 3 удалено
  1. 16 3
      deltachat-ios/MessageKit/Layout/MediaMessageSizeCalculator.swift

+ 16 - 3
deltachat-ios/MessageKit/Layout/MediaMessageSizeCalculator.swift

@@ -27,15 +27,28 @@ import UIKit
 
 open class MediaMessageSizeCalculator: MessageSizeCalculator {
 
+    var maxMediaItemHeight: CGFloat {
+        return UIScreen.main.bounds.size.height * 0.8
+    }
+
     open override func messageContainerSize(for message: MessageType) -> CGSize {
         let maxWidth = messageContainerMaxWidth(for: message)
         let sizeForMediaItem = { (maxWidth: CGFloat, item: MediaItem) -> CGSize in
+            var imageWidth = item.size.width
+            var imageHeight = item.size.height
             if maxWidth < item.size.width {
                 // Maintain the ratio if width is too great
-                let height = maxWidth * item.size.height / item.size.width
-                return CGSize(width: maxWidth, height: height)
+                imageHeight = maxWidth * item.size.height / item.size.width
+                imageWidth = maxWidth
             }
-            return item.size
+
+            if self.maxMediaItemHeight < imageHeight {
+                // Maintain the ratio if height is too great
+                imageWidth = self.maxMediaItemHeight * imageWidth / imageHeight
+                imageHeight = self.maxMediaItemHeight
+            }
+
+            return CGSize(width: imageWidth, height: imageHeight)
         }
         switch message.kind {
         case .photo(let item):