Skip to content

Commit c8c08b8

Browse files
committed
created a factory method in IterableEmbeddedView
created a factory method in IterableEmbeddedView and updated sample app
1 parent 965ecfb commit c8c08b8

File tree

4 files changed

+31
-37
lines changed

4 files changed

+31
-37
lines changed

sample-apps/swift-sample-app/swift-sample-app/Base.lproj/Main.storyboard

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
<deployment identifier="iOS"/>
66
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22504"/>
77
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
8-
<capability name="System colors in document resources" minToolsVersion="11.0"/>
98
<capability name="collection view cell content view" minToolsVersion="11.0"/>
109
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
1110
</dependencies>
@@ -250,9 +249,9 @@
250249
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
251250
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
252251
<subviews>
253-
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4iu-pn-q94" customClass="IterableEmbeddedView" customModule="IterableSDK">
252+
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4iu-pn-q94">
254253
<rect key="frame" x="16" y="70" width="343" height="200"/>
255-
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
254+
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
256255
<constraints>
257256
<constraint firstAttribute="height" constant="200" id="ZEC-f3-vwa"/>
258257
</constraints>
@@ -299,9 +298,9 @@
299298
<rect key="frame" x="0.0" y="0.0" width="350" height="400"/>
300299
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
301300
<subviews>
302-
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="BMQ-6N-x3e" customClass="IterableEmbeddedView" customModule="IterableSDK">
301+
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="BMQ-6N-x3e">
303302
<rect key="frame" x="0.0" y="0.0" width="350" height="400"/>
304-
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
303+
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
305304
</view>
306305
</subviews>
307306
<constraints>
@@ -362,8 +361,5 @@
362361
</scenes>
363362
<resources>
364363
<image name="iterableLogo" width="143" height="33"/>
365-
<systemColor name="systemBackgroundColor">
366-
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
367-
</systemColor>
368364
</resources>
369365
</document>

sample-apps/swift-sample-app/swift-sample-app/EmbeddedMessages/EmbeddedMessagesViewController.swift

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class EmbeddedMessagesViewController: UIViewController {
2222

2323
@IBOutlet weak var doneButton: UIButton!
2424
@IBOutlet weak var syncButton: UIButton!
25-
@IBOutlet weak var embeddedBannerView: IterableEmbeddedView!
25+
@IBOutlet weak var embeddedBannerView: UIView!
2626
@IBOutlet weak var carouselCollectionView: UICollectionView!
2727
var cardViews: [IterableEmbeddedMessage] = []
2828

@@ -79,7 +79,7 @@ class EmbeddedMessagesViewController: UIViewController {
7979
carouselCollectionView.reloadData()
8080
}
8181

82-
func loadCardView(_ embeddedView: IterableEmbeddedView, _ embeddedMessage: IterableEmbeddedMessage) {
82+
func loadCardView(_ embeddedView: UIView, _ embeddedMessage: IterableEmbeddedMessage) {
8383
DispatchQueue.main.async { [self] in
8484
loadEmbeddedView(embeddedView, embeddedMessage: embeddedMessage, type: IterableEmbeddedViewType.card)
8585
}
@@ -93,20 +93,19 @@ class EmbeddedMessagesViewController: UIViewController {
9393

9494
}
9595

96-
func loadEmbeddedView(_ embeddedView: IterableEmbeddedView, embeddedMessage: IterableEmbeddedMessage, type: IterableEmbeddedViewType) {
97-
96+
func loadEmbeddedView(_ customView: UIView, embeddedMessage: IterableEmbeddedMessage, type: IterableEmbeddedViewType) {
97+
let config = IterableEmbeddedViewConfig(borderCornerRadius: 10)
98+
let embeddedView = IterableEmbeddedView(message: embeddedMessage, viewType: type, config: config)
9899
embeddedView.iterableEmbeddedViewDelegate = self
99100
embeddedView.primaryBtn.isRoundedSides = true
100101
embeddedView.secondaryBtn.isRoundedSides = true
101102
// We are setting the width of buttons as 140 as per our embedded messages width. You can change as per your need
102103
embeddedView.primaryBtn.widthAnchor.constraint(equalToConstant: 140).isActive = true
103104
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-
109105

106+
// You must call this method which sets the type for this view which helps render the particular layout of cardview/bannerview
107+
embeddedView.frame = CGRect(x: 0, y: 0, width: customView.frame.width, height: customView.frame.height)
108+
customView.addSubview(embeddedView)
110109
}
111110

112111
@IBAction func doneButtonTapped(_: UIButton) {
@@ -156,11 +155,8 @@ extension EmbeddedMessagesViewController: UICollectionViewDelegate, UICollection
156155
cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
157156

158157
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-
158+
let cardView = cardViews[indexPath.row]
159+
loadCardView(cell.embeddedCardView, cardView)
164160
return cell
165161
}
166162

sample-apps/swift-sample-app/swift-sample-app/EmbeddedMessages/IterableCardViewCell.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@ import UIKit
1010
import IterableSDK
1111

1212
class IterableEmbeddedCardViewCell: UICollectionViewCell {
13-
@IBOutlet weak var embeddedCardView: IterableEmbeddedView!
13+
@IBOutlet weak var embeddedCardView: UIView!
1414
}

swift-sdk/uicomponents/IterableEmbeddedView.swift

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ public class IterableEmbeddedView:UIView {
4545
/// IterableEmbeddedView Image View.
4646
@IBOutlet weak public var imgView: UIImageView!
4747
@IBOutlet weak public var cardImageView: UIImageView!
48-
@IBOutlet weak var cardImageTopConstraint: NSLayoutConstraint!
49-
@IBOutlet weak var titleToTopConstraint: NSLayoutConstraint!
48+
@IBOutlet var cardImageTopConstraint: NSLayoutConstraint!
49+
@IBOutlet var titleToTopConstraint: NSLayoutConstraint!
5050

5151
@IBOutlet weak public var imageViewWidthConstraint:NSLayoutConstraint!
5252
@IBOutlet weak public var imageViewHeightConstraint:NSLayoutConstraint!
@@ -108,10 +108,16 @@ public class IterableEmbeddedView:UIView {
108108

109109
// MARK: IterableEmbeddedView init method
110110
/// IterableEmbeddedView init method
111-
required init?(coder aDecoder: NSCoder) {
112-
super.init(coder: aDecoder)
113-
xibSetup()
114-
}
111+
required init?(coder aDecoder: NSCoder) {
112+
super.init(coder: aDecoder)
113+
xibSetup()
114+
}
115+
116+
public init(message: IterableEmbeddedMessage, viewType: IterableEmbeddedViewType, config: IterableEmbeddedViewConfig?) {
117+
super.init(frame: CGRectZero)
118+
xibSetup()
119+
configure(message: message, viewType: viewType, config: config)
120+
}
115121

116122
func xibSetup() {
117123
self.contentView = self.loadViewFromNib()
@@ -187,14 +193,10 @@ public class IterableEmbeddedView:UIView {
187193
self.embeddedMessageTitle = message.elements?.title
188194
self.embeddedMessageBody = message.elements?.body
189195

190-
if let _ = self.EMimage {
191-
self.loadViewType(viewType: viewType)
192-
} else {
193-
if let imageUrl = message.elements?.mediaUrl {
194-
if let url = URL(string: imageUrl) {
195-
loadImage(from: url, withViewType: viewType)
196-
self.EMimage?.accessibilityLabel = message.elements?.mediaUrlCaption
197-
}
196+
if let imageUrl = message.elements?.mediaUrl {
197+
if let url = URL(string: imageUrl) {
198+
loadImage(from: url, withViewType: viewType)
199+
self.EMimage?.accessibilityLabel = message.elements?.mediaUrlCaption
198200
}
199201
}
200202

0 commit comments

Comments
 (0)