Explorar o código

ensure images previews for quotes are shown correctly if a message text is missing

cyberta %!s(int64=4) %!d(string=hai) anos
pai
achega
4012fb4417

+ 19 - 0
DcCore/DcCore/Extensions/UIView+Extensions.swift

@@ -64,6 +64,25 @@ public extension UIView {
         }
         return constraint
     }
+    
+    /**
+     ensure the top of self is aligned with or lower than another view
+     can be used in conjunction with constraintAlignCenterY
+     */
+    func constraintAlignTopMaxTo(_ view: UIView, paddingTop: CGFloat = 0.0, priority: UILayoutPriority? = .none) -> NSLayoutConstraint {
+        let constraint = NSLayoutConstraint(
+            item: self,
+            attribute: .top,
+            relatedBy: .greaterThanOrEqual,
+            toItem: view,
+            attribute: .top,
+            multiplier: 1.0,
+            constant: paddingTop)
+        if let priority = priority {
+            constraint.priority = priority
+        }
+        return constraint
+    }
 
     func constraintAlignBottomTo(_ view: UIView, paddingBottom: CGFloat = 0.0, priority: UILayoutPriority? = .none) -> NSLayoutConstraint {
         let constraint = NSLayoutConstraint(

+ 1 - 0
deltachat-ios/Chat/Views/QuoteView.swift

@@ -53,6 +53,7 @@ public class QuoteView: UIView {
             imagePreview.constraintHeightTo(36),
             imagePreview.constraintWidthTo(36),
             imagePreview.constraintCenterYTo(citeBar),
+            imagePreview.constraintAlignTopMaxTo(self),
             senderTitle.constraintAlignTopTo(self),
             senderTitle.constraintAlignLeadingTo(self, paddingLeading: 28),
             senderTitle.constraintTrailingToLeadingOf(imagePreview, paddingTrailing: 8),