@@ -22,7 +22,7 @@ class EmbeddedMessagesViewController: UIViewController {
22
22
23
23
@IBOutlet weak var doneButton : UIButton !
24
24
@IBOutlet weak var syncButton : UIButton !
25
- @IBOutlet weak var embeddedBannerView : IterableEmbeddedView !
25
+ @IBOutlet weak var embeddedBannerView : UIView !
26
26
@IBOutlet weak var carouselCollectionView : UICollectionView !
27
27
var cardViews : [ IterableEmbeddedMessage ] = [ ]
28
28
@@ -80,33 +80,29 @@ class EmbeddedMessagesViewController: UIViewController {
80
80
}
81
81
82
82
func loadCardView( _ embeddedView: IterableEmbeddedView , _ embeddedMessage: IterableEmbeddedMessage ) {
83
- DispatchQueue . main. async { [ self ] in
84
- loadEmbeddedView ( embeddedView, embeddedMessage: embeddedMessage, type: IterableEmbeddedViewType . card)
85
- }
86
-
83
+ embeddedView. iterableEmbeddedViewDelegate = self
84
+ embeddedView. primaryBtn. isRoundedSides = true
85
+ embeddedView. secondaryBtn. isRoundedSides = true
86
+ // We are setting the width of buttons as 140 as per our embedded messages width. You can change as per your need
87
+ embeddedView. primaryBtn. widthAnchor. constraint ( equalToConstant: 140 ) . isActive = true
88
+ embeddedView. secondaryBtn. widthAnchor. constraint ( equalToConstant: 140 ) . isActive = true
89
+ let config = IterableEmbeddedViewConfig ( borderCornerRadius: 10 )
90
+ embeddedView. configure ( message: embeddedMessage, viewType: . card, config: config)
87
91
}
88
92
89
93
func loadBannerView( _ embeddedMessage: IterableEmbeddedMessage ) {
90
- DispatchQueue . main. async { [ self ] in
91
- loadEmbeddedView ( embeddedBannerView, embeddedMessage: embeddedMessage, type: IterableEmbeddedViewType . banner)
92
- }
93
-
94
- }
95
-
96
- func loadEmbeddedView( _ embeddedView: IterableEmbeddedView , embeddedMessage: IterableEmbeddedMessage , type: IterableEmbeddedViewType ) {
97
-
94
+ let config = IterableEmbeddedViewConfig ( borderCornerRadius: 10 )
95
+ let embeddedView = IterableEmbeddedView ( message: embeddedMessage, viewType: . banner, config: config)
98
96
embeddedView. iterableEmbeddedViewDelegate = self
99
97
embeddedView. primaryBtn. isRoundedSides = true
100
98
embeddedView. secondaryBtn. isRoundedSides = true
101
99
// We are setting the width of buttons as 140 as per our embedded messages width. You can change as per your need
102
100
embeddedView. primaryBtn. widthAnchor. constraint ( equalToConstant: 140 ) . isActive = true
103
101
embeddedView. secondaryBtn. widthAnchor. constraint ( equalToConstant: 140 ) . isActive = true
104
-
105
- let config = IterableEmbeddedViewConfig ( borderCornerRadius: 10 )
106
- // You must call this method which sets the type for this view which helps render the particular layout of cardview/bannerview
107
- embeddedView. configure ( message: embeddedMessage, viewType: type, config: config)
108
-
109
102
103
+ // You must initialize frame here for the embeddedView
104
+ embeddedView. frame = CGRect ( x: 0 , y: 0 , width: embeddedBannerView. frame. width, height: embeddedBannerView. frame. height)
105
+ embeddedBannerView. addSubview ( embeddedView)
110
106
}
111
107
112
108
@IBAction func doneButtonTapped( _: UIButton ) {
@@ -156,11 +152,8 @@ extension EmbeddedMessagesViewController: UICollectionViewDelegate, UICollection
156
152
cellForItemAt indexPath: IndexPath ) -> UICollectionViewCell {
157
153
158
154
let cell = collectionView. dequeueReusableCell ( withReuseIdentifier: " IterableEmbeddedCardViewCell " , for: indexPath) as! IterableEmbeddedCardViewCell
159
- if indexPath. row < cardViews. count {
160
- let cardView = cardViews [ indexPath. row]
161
- loadCardView ( cell. embeddedCardView, cardView)
162
- }
163
-
155
+ let cardView = cardViews [ indexPath. row]
156
+ loadCardView ( cell. embeddedCardView, cardView)
164
157
return cell
165
158
}
166
159
0 commit comments