Skip to content

Commit 7eab80a

Browse files
authored
MOB-9982 Embedded messaging crash when image fails to load (#897)
1 parent 584f3ae commit 7eab80a

File tree

1 file changed

+36
-40
lines changed

1 file changed

+36
-40
lines changed

swift-sdk/ui-components/uikit/IterableEmbeddedView.swift

+36-40
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import Foundation
99
import UIKit
1010

1111
@IBDesignable
12-
public class IterableEmbeddedView:UIView {
12+
public class IterableEmbeddedView: UIView {
1313

1414
/// Set background color of view in container view.
1515
@IBOutlet weak public var contentView: UIView!
@@ -32,8 +32,8 @@ public class IterableEmbeddedView:UIView {
3232
@IBOutlet weak var horizontalButtonStackViewSpacer: UIView!
3333

3434
/// IterableEmbeddedView Image View.
35-
@IBOutlet weak public var imgView: UIImageView!
36-
@IBOutlet weak public var cardImageView: UIImageView!
35+
@IBOutlet weak public var imgView: UIImageView?
36+
@IBOutlet weak public var cardImageView: UIImageView?
3737
@IBOutlet var cardImageTopConstraint: NSLayoutConstraint!
3838
@IBOutlet var titleToTopConstraint: NSLayoutConstraint!
3939

@@ -274,46 +274,42 @@ public class IterableEmbeddedView:UIView {
274274

275275
private func loadViewType(viewType: IterableEmbeddedViewType) {
276276
switch viewType {
277-
case .card:
278-
imgView.isHidden = true
279-
let shouldShowCardImageView = EMimage != nil
280-
if shouldShowCardImageView {
281-
// Show cardImageView
282-
cardImageView.image = EMimage
283-
cardImageView.isHidden = false
284-
cardImageTopConstraint.isActive = true
285-
titleToTopConstraint.isActive = false
286-
titleToTopConstraint?.isActive = false
287-
} else {
288-
// Hide cardImageView and deactivate its constraints
289-
cardImageView.isHidden = true
290-
cardImageTopConstraint.isActive = false
291-
titleToTopConstraint.isActive = true
292-
titleToTopConstraint?.isActive = true
293-
294-
// Remove cardImageView from its superview and release it
295-
cardImageView.removeFromSuperview()
296-
cardImageView = nil
297-
}
298-
case .banner:
299-
imgView.isHidden = EMimage == nil
300-
imgView.isHidden = self.EMimage == nil
301-
imgView.image = EMimage
302-
if !imgView.isHidden {
303-
imgView.widthAnchor.constraint(equalToConstant: 100).isActive = true
304-
}
305-
cardImageView.isHidden = true
306-
cardImageTopConstraint.isActive = false
307-
titleToTopConstraint.isActive = true
308-
cardImageTopConstraint?.isActive = false
309-
titleToTopConstraint?.isActive = true
310-
case .notification:
311-
imgView.isHidden = true
312-
cardImageView.isHidden = true
277+
case .card:
278+
imgView?.isHidden = true
279+
let shouldShowCardImageView = EMimage != nil
280+
if shouldShowCardImageView {
281+
// Show cardImageView
282+
cardImageView?.image = EMimage
283+
cardImageView?.isHidden = false
284+
cardImageTopConstraint.isActive = true
285+
titleToTopConstraint.isActive = false
286+
titleToTopConstraint?.isActive = false
287+
} else {
288+
// Hide cardImageView and deactivate its constraints
289+
cardImageView?.isHidden = true
313290
cardImageTopConstraint.isActive = false
314291
titleToTopConstraint.isActive = true
315-
cardImageTopConstraint?.isActive = false
316292
titleToTopConstraint?.isActive = true
293+
}
294+
case .banner:
295+
imgView?.isHidden = EMimage == nil
296+
imgView?.isHidden = self.EMimage == nil
297+
imgView?.image = EMimage
298+
if let imageView = imgView, !imageView.isHidden {
299+
imgView?.widthAnchor.constraint(equalToConstant: 100).isActive = true
300+
}
301+
cardImageView?.isHidden = true
302+
cardImageTopConstraint.isActive = false
303+
titleToTopConstraint.isActive = true
304+
cardImageTopConstraint?.isActive = false
305+
titleToTopConstraint?.isActive = true
306+
case .notification:
307+
imgView?.isHidden = true
308+
cardImageView?.isHidden = true
309+
cardImageTopConstraint.isActive = false
310+
titleToTopConstraint.isActive = true
311+
cardImageTopConstraint?.isActive = false
312+
titleToTopConstraint?.isActive = true
317313
}
318314
}
319315

0 commit comments

Comments
 (0)