Showing
5 changed files
with
639 additions
and
7 deletions
... | @@ -7,6 +7,7 @@ | ... | @@ -7,6 +7,7 @@ |
7 | objects = { | 7 | objects = { |
8 | 8 | ||
9 | /* Begin PBXBuildFile section */ | 9 | /* Begin PBXBuildFile section */ |
10 | + 1E4C4CFB2DE6014500279AAD /* CopyableLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E4C4CFA2DE6014500279AAD /* CopyableLabel.swift */; }; | ||
10 | 1E64E1832DE48E0600543217 /* MyRewardsOfferCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1E64E1822DE48E0600543217 /* MyRewardsOfferCollectionViewCell.xib */; }; | 11 | 1E64E1832DE48E0600543217 /* MyRewardsOfferCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1E64E1822DE48E0600543217 /* MyRewardsOfferCollectionViewCell.xib */; }; |
11 | 1E64E1842DE48E0600543217 /* MyRewardsOfferCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E64E1812DE48E0600543217 /* MyRewardsOfferCollectionViewCell.swift */; }; | 12 | 1E64E1842DE48E0600543217 /* MyRewardsOfferCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E64E1812DE48E0600543217 /* MyRewardsOfferCollectionViewCell.swift */; }; |
12 | 1E917CD62DDF64B2002221D8 /* MyRewardsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1E917CD52DDF64B2002221D8 /* MyRewardsViewController.xib */; }; | 13 | 1E917CD62DDF64B2002221D8 /* MyRewardsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1E917CD52DDF64B2002221D8 /* MyRewardsViewController.xib */; }; |
... | @@ -150,6 +151,7 @@ | ... | @@ -150,6 +151,7 @@ |
150 | 151 | ||
151 | /* Begin PBXFileReference section */ | 152 | /* Begin PBXFileReference section */ |
152 | 1E108A9728A3FA9B0008B8E7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; | 153 | 1E108A9728A3FA9B0008B8E7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; |
154 | + 1E4C4CFA2DE6014500279AAD /* CopyableLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CopyableLabel.swift; sourceTree = "<group>"; }; | ||
153 | 1E64E1812DE48E0600543217 /* MyRewardsOfferCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyRewardsOfferCollectionViewCell.swift; sourceTree = "<group>"; }; | 155 | 1E64E1812DE48E0600543217 /* MyRewardsOfferCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyRewardsOfferCollectionViewCell.swift; sourceTree = "<group>"; }; |
154 | 1E64E1822DE48E0600543217 /* MyRewardsOfferCollectionViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MyRewardsOfferCollectionViewCell.xib; sourceTree = "<group>"; }; | 156 | 1E64E1822DE48E0600543217 /* MyRewardsOfferCollectionViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MyRewardsOfferCollectionViewCell.xib; sourceTree = "<group>"; }; |
155 | 1E917CD42DDF64B2002221D8 /* MyRewardsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyRewardsViewController.swift; sourceTree = "<group>"; }; | 157 | 1E917CD42DDF64B2002221D8 /* MyRewardsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyRewardsViewController.swift; sourceTree = "<group>"; }; |
... | @@ -462,6 +464,7 @@ | ... | @@ -462,6 +464,7 @@ |
462 | E6A77850282933340045BBA8 /* SwiftWarplyFramework */ = { | 464 | E6A77850282933340045BBA8 /* SwiftWarplyFramework */ = { |
463 | isa = PBXGroup; | 465 | isa = PBXGroup; |
464 | children = ( | 466 | children = ( |
467 | + 1E4C4CFA2DE6014500279AAD /* CopyableLabel.swift */, | ||
465 | 1E108A9728A3FA9B0008B8E7 /* Info.plist */, | 468 | 1E108A9728A3FA9B0008B8E7 /* Info.plist */, |
466 | 1EA8E5B42DDF315600CD3418 /* screens */, | 469 | 1EA8E5B42DDF315600CD3418 /* screens */, |
467 | 1EA8E5BC2DDF34FB00CD3418 /* cells */, | 470 | 1EA8E5BC2DDF34FB00CD3418 /* cells */, |
... | @@ -926,6 +929,7 @@ | ... | @@ -926,6 +929,7 @@ |
926 | 1E917CD72DDF64B2002221D8 /* MyRewardsViewController.swift in Sources */, | 929 | 1E917CD72DDF64B2002221D8 /* MyRewardsViewController.swift in Sources */, |
927 | E6A77915282933E60045BBA8 /* WLUtils.m in Sources */, | 930 | E6A77915282933E60045BBA8 /* WLUtils.m in Sources */, |
928 | 1E917CDC2DDF68C7002221D8 /* CouponViewController.swift in Sources */, | 931 | 1E917CDC2DDF68C7002221D8 /* CouponViewController.swift in Sources */, |
932 | + 1E4C4CFB2DE6014500279AAD /* CopyableLabel.swift in Sources */, | ||
929 | E6A77947282933E70045BBA8 /* FMDatabaseQueue.m in Sources */, | 933 | E6A77947282933E70045BBA8 /* FMDatabaseQueue.m in Sources */, |
930 | E6A77922282933E60045BBA8 /* NSData+SSToolkitAdditions.m in Sources */, | 934 | E6A77922282933E60045BBA8 /* NSData+SSToolkitAdditions.m in Sources */, |
931 | E6A7794A282933E70045BBA8 /* FMDatabaseAdditions.m in Sources */, | 935 | E6A7794A282933E70045BBA8 /* FMDatabaseAdditions.m in Sources */, | ... | ... |
No preview for this file type
1 | +// | ||
2 | +// CopyableLabel.swift | ||
3 | +// SwiftWarplyFramework | ||
4 | +// | ||
5 | +// Created by Manos Chorianopoulos on 26/10/22. | ||
6 | +// | ||
7 | + | ||
8 | +import Foundation | ||
9 | +import UIKit | ||
10 | + | ||
11 | +class CopyableLabel: UILabel { | ||
12 | + | ||
13 | + override init(frame: CGRect) { | ||
14 | + super.init(frame: frame) | ||
15 | + sharedInit() | ||
16 | + } | ||
17 | + | ||
18 | + required init(coder aDecoder: NSCoder) { | ||
19 | + super.init(coder: aDecoder)! | ||
20 | + sharedInit() | ||
21 | + } | ||
22 | + | ||
23 | + func sharedInit() { | ||
24 | + isUserInteractionEnabled = true | ||
25 | + addGestureRecognizer(UILongPressGestureRecognizer(target: self, action: #selector(showMenu(sender:)))) | ||
26 | + } | ||
27 | + | ||
28 | + @objc | ||
29 | + func showMenu(sender: AnyObject?) { | ||
30 | + becomeFirstResponder() | ||
31 | + let menu = UIMenuController.shared | ||
32 | + if !menu.isMenuVisible { | ||
33 | + menu.setTargetRect(bounds, in: self) | ||
34 | + menu.setMenuVisible(true, animated: true) | ||
35 | + } | ||
36 | + } | ||
37 | + | ||
38 | + override var canBecomeFirstResponder: Bool { | ||
39 | + return true | ||
40 | + } | ||
41 | + | ||
42 | + override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool { | ||
43 | + if action == #selector(UIResponderStandardEditActions.copy(_:)) { | ||
44 | + return true | ||
45 | + } | ||
46 | + return false | ||
47 | + } | ||
48 | + | ||
49 | + override func copy(_ sender: Any?) { | ||
50 | + let board = UIPasteboard.general | ||
51 | + if var textToCopy = text { | ||
52 | + if (textToCopy.contains(", ")) { | ||
53 | + textToCopy = textToCopy.replacingOccurrences(of: ", ", with: "") | ||
54 | + } | ||
55 | + print(textToCopy) | ||
56 | + board.string = textToCopy | ||
57 | + } | ||
58 | + | ||
59 | +// board.string = text | ||
60 | + let menu = UIMenuController.shared | ||
61 | + menu.setMenuVisible(false, animated: true) | ||
62 | + } | ||
63 | + | ||
64 | +} |
... | @@ -8,13 +8,125 @@ | ... | @@ -8,13 +8,125 @@ |
8 | import UIKit | 8 | import UIKit |
9 | 9 | ||
10 | @objc public class CouponViewController: UIViewController { | 10 | @objc public class CouponViewController: UIViewController { |
11 | + @IBOutlet weak var couponImage: UIImageView! | ||
12 | + | ||
13 | + @IBOutlet weak var infoView: UIView! | ||
14 | + @IBOutlet weak var infoImage: UIImageView! | ||
15 | + @IBOutlet weak var infoLabel: UILabel! | ||
16 | + | ||
17 | + @IBOutlet weak var favoriteImage: UIImageView! | ||
18 | + @IBOutlet weak var shareImage: UIImageView! | ||
19 | + | ||
20 | + @IBOutlet weak var titleLabel: UILabel! | ||
21 | + @IBOutlet weak var subtitleLabel: UILabel! | ||
22 | + @IBOutlet weak var expirationLabel: UILabel! | ||
23 | + @IBOutlet weak var detailsLabel: UILabel! | ||
24 | + | ||
25 | + // MARK: - IBOutlets for Coupon Code Section | ||
26 | + @IBOutlet weak var couponCodeContainerView: UIView! | ||
27 | + @IBOutlet weak var couponCodeHeaderView: UIView! | ||
28 | + @IBOutlet weak var couponCodeContentView: UIView! | ||
29 | + | ||
30 | + // Header elements | ||
31 | + @IBOutlet weak var couponCodeTitleLabel: UILabel! | ||
32 | + @IBOutlet weak var couponCodeArrowImage: UIImageView! | ||
33 | + @IBOutlet weak var couponCodeButton: UIButton! | ||
34 | + | ||
35 | + // Content elements (initially hidden) | ||
36 | + @IBOutlet weak var couponCodeValueLabel: CopyableLabel! | ||
37 | + @IBOutlet weak var copyButtonImage: UIImageView! | ||
38 | + @IBOutlet weak var copyButton: UIButton! | ||
39 | + | ||
40 | + // Constraints for animation | ||
41 | + @IBOutlet weak var couponCodeContentHeightConstraint: NSLayoutConstraint! | ||
42 | + | ||
43 | + // MARK: - IBOutlets for Coupon Code Section | ||
44 | + @IBOutlet weak var couponQRContainerView: UIView! | ||
45 | + @IBOutlet weak var couponQRHeaderView: UIView! | ||
46 | + @IBOutlet weak var couponQRContentView: UIView! | ||
47 | + | ||
48 | + // Header elements | ||
49 | + @IBOutlet weak var couponQRTitleLabel: UILabel! | ||
50 | + @IBOutlet weak var couponQRArrowImage: UIImageView! | ||
51 | + @IBOutlet weak var couponQRButton: UIButton! | ||
52 | + | ||
53 | + // Content elements (initially hidden) | ||
54 | + @IBOutlet weak var couponQRImage: UIImageView! | ||
55 | + | ||
56 | + // Constraints for animation | ||
57 | + @IBOutlet weak var couponQRContentHeightConstraint: NSLayoutConstraint! | ||
58 | + | ||
59 | + @IBOutlet weak var termsButton: UIButton! | ||
60 | + @IBOutlet weak var termsLabel: UILabel! | ||
61 | + @IBOutlet weak var termsLabelHeight: NSLayoutConstraint! | ||
62 | + | ||
63 | + @IBOutlet weak var mapButton: UIButton! | ||
64 | + | ||
65 | + @IBOutlet weak var websiteButton: UIButton! | ||
66 | + | ||
11 | var coupon: OfferModel? | 67 | var coupon: OfferModel? |
68 | + private var isDetailsExpanded = false | ||
69 | + private var isCouponCodeExpanded = false | ||
70 | + private var isCouponBarcodeExpanded = false | ||
71 | + private var isTermsExpanded = false | ||
12 | 72 | ||
13 | public override func viewDidLoad() { | 73 | public override func viewDidLoad() { |
14 | super.viewDidLoad() | 74 | super.viewDidLoad() |
15 | 75 | ||
16 | // Show navigation bar for this screen (with back button) | 76 | // Show navigation bar for this screen (with back button) |
17 | self.navigationController?.setNavigationBarHidden(false, animated: false) | 77 | self.navigationController?.setNavigationBarHidden(false, animated: false) |
78 | + setBackButton() | ||
79 | + setNavigationTitle("Προσφορά") | ||
80 | + | ||
81 | + infoView.backgroundColor = UIColor(rgb: 0xFFFFFF) | ||
82 | + infoView.layer.cornerRadius = 10.0 | ||
83 | + infoView.layer.borderWidth = 1.0 | ||
84 | + infoView.layer.borderColor = UIColor(red: 0.01, green: 0.05, blue: 0.11, alpha: 0.19).cgColor | ||
85 | + | ||
86 | + infoImage.image = UIImage(named: "info", in: MyEmptyClass.resourceBundle(), compatibleWith: nil) | ||
87 | + shareImage.image = UIImage(named: "share", in: MyEmptyClass.resourceBundle(), compatibleWith: nil) | ||
88 | + couponCodeArrowImage.image = UIImage(named: "arrow_down", in: MyEmptyClass.resourceBundle(), compatibleWith: nil) | ||
89 | + copyButtonImage.image = UIImage(named: "copy", in: MyEmptyClass.resourceBundle(), compatibleWith: nil) | ||
90 | + couponQRArrowImage.image = UIImage(named: "arrow_down", in: MyEmptyClass.resourceBundle(), compatibleWith: nil) | ||
91 | + couponQRImage.image = UIImage(named: "barcode", in: MyEmptyClass.resourceBundle(), compatibleWith: nil) | ||
92 | + | ||
93 | + infoLabel.font = UIFont(name: "PingLCG-Regular", size: 13) | ||
94 | + infoLabel.textColor = UIColor(rgb: 0x020E1C) | ||
95 | + infoLabel.text = "Περισσότερα" | ||
96 | + | ||
97 | + setupExpandableDetails() | ||
98 | + | ||
99 | + couponCodeContainerView.backgroundColor = UIColor(rgb: 0xFFFFFF) | ||
100 | + couponCodeContainerView.layer.cornerRadius = 8.0 | ||
101 | + | ||
102 | + couponQRContainerView.backgroundColor = UIColor(rgb: 0xFFFFFF) | ||
103 | + couponQRContainerView.layer.cornerRadius = 8.0 | ||
104 | + | ||
105 | + termsButton.titleLabel?.font = UIFont(name: "PingLCG-Bold", size: 16) | ||
106 | +// termsButton.imageView?.layer.transform = CATransform3DMakeScale(1.5, 1.5, 1.5) | ||
107 | + termsButton.setTitle("Όροι Χρήσης", for: .normal) | ||
108 | + termsButton.setTitleColor(UIColor(rgb: 0x020E1C), for: .normal) | ||
109 | + termsButton.setImage(UIImage(named: "arrow_down.png", in: MyEmptyClass.resourceBundle(), compatibleWith: nil), for: .normal) | ||
110 | + termsButton.semanticContentAttribute = .forceRightToLeft | ||
111 | + termsButton.tintColor = UIColor(red: 0.00, green: 0.00, blue: 0.00, alpha: 1.00) | ||
112 | + termsButton.imageEdgeInsets = UIEdgeInsets(top: 0, left: 5, bottom: 0, right: 0); | ||
113 | + termsButton.titleEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 5); | ||
114 | + termsButton.imageView?.layer.transform = CATransform3DMakeScale(0.8, 0.8, 0.8) | ||
115 | + | ||
116 | + termsLabelHeight.constant = 0 | ||
117 | + | ||
118 | + mapButton.titleLabel?.font = UIFont(name: "PingLCG-Bold", size: 16) | ||
119 | + mapButton.setTitle("Όροι Χρήσης", for: .normal) | ||
120 | + mapButton.setTitleColor(UIColor(rgb: 0xFFFFFF), for: .normal) | ||
121 | + mapButton.layer.cornerRadius = 4.0 | ||
122 | + | ||
123 | + websiteButton.titleLabel?.font = UIFont(name: "PingLCG-Bold", size: 16) | ||
124 | + websiteButton.setTitle("Όροι Χρήσης", for: .normal) | ||
125 | + websiteButton.setTitleColor(UIColor(rgb: 0x000F1E), for: .normal) | ||
126 | + websiteButton.backgroundColor = .clear | ||
127 | + websiteButton.layer.borderWidth = 1 | ||
128 | + websiteButton.layer.borderColor = UIColor(rgb: 0x000F1E).cgColor | ||
129 | + websiteButton.layer.cornerRadius = 4.0 | ||
18 | 130 | ||
19 | // Configure the view with offer data | 131 | // Configure the view with offer data |
20 | if let offer = coupon { | 132 | if let offer = coupon { |
... | @@ -23,7 +135,59 @@ import UIKit | ... | @@ -23,7 +135,59 @@ import UIKit |
23 | } | 135 | } |
24 | 136 | ||
25 | private func setupUI(with coupon: OfferModel) { | 137 | private func setupUI(with coupon: OfferModel) { |
26 | - // Set up the UI based on the offer data | 138 | + couponImage.image = UIImage(named: coupon.bannerImage, in: MyEmptyClass.resourceBundle(), compatibleWith: nil) |
139 | + favoriteImage.image = UIImage(named: coupon.isFavorite ? "favorite2_filled" : "favorite2_empty", in: MyEmptyClass.resourceBundle(), compatibleWith: nil) | ||
140 | + | ||
141 | + titleLabel.font = UIFont(name: "PingLCG-Bold", size: 24) | ||
142 | + titleLabel.textColor = UIColor(rgb: 0xF2709D) | ||
143 | + titleLabel.text = coupon.title | ||
144 | + | ||
145 | + subtitleLabel.font = UIFont(name: "PingLCG-Regular", size: 18) | ||
146 | + subtitleLabel.textColor = UIColor(rgb: 0x020E1C) | ||
147 | + subtitleLabel.text = coupon.description | ||
148 | + | ||
149 | + expirationLabel.font = UIFont(name: "PingLCG-Regular", size: 18) | ||
150 | + expirationLabel.textColor = UIColor(rgb: 0x020E1C) | ||
151 | +// expirationLabel.text = ("Η προσφορά ισχύει " + coupon.expirationDate) | ||
152 | + expirationLabel.text = "Η προσφορά ισχύει έως 30-09-2025" | ||
153 | + | ||
154 | + couponCodeTitleLabel.font = UIFont(name: "PingLCG-Regular", size: 16) | ||
155 | + couponCodeTitleLabel.textColor = UIColor(rgb: 0x000F1E) | ||
156 | + couponCodeTitleLabel.text = "Κωδικός Κουπονιού" | ||
157 | + | ||
158 | + couponCodeTitleLabel.font = UIFont(name: "PingLCG-Bold", size: 24) | ||
159 | + couponCodeTitleLabel.textColor = UIColor(rgb: 0x000F1E) | ||
160 | + couponCodeTitleLabel.text = "coupons_ab" | ||
161 | + | ||
162 | + couponCodeTitleLabel.font = UIFont(name: "PingLCG-Regular", size: 16) | ||
163 | + couponCodeTitleLabel.textColor = UIColor(rgb: 0x000F1E) | ||
164 | + couponCodeTitleLabel.text = "QR Κουπονιού" | ||
165 | + | ||
166 | + termsLabel.font = UIFont(name: "PingLCG-Regular", size: 16) | ||
167 | + termsLabel.textColor = UIColor(rgb: 0x020E1C) | ||
168 | + termsLabel.text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sed ex euismod, feugiat justo eu, faucibus urna. Nulla sodales euismod arcu volutpat finibus. Etiam id urna at justo facilisis tempor. Morbi dignissim erat vitae magna sodales dignissim ac in mauris. Mauris tempor convallis tortor, interdum hendrerit turpis eleifend at. Praesent." | ||
27 | } | 169 | } |
28 | 170 | ||
171 | + private func setupExpandableDetails() { | ||
172 | + let fullText = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sed ex euismod, feugiat justo eu, faucibus urna. Nulla sodales euismod arcu volutpat finibus. Etiam id urna at justo facilisis tempor. Morbi dignissim erat vitae magna sodales dignissim ac in mauris. Mauris tempor convallis tortor, interdum hendrerit turpis eleifend at. Praesent." | ||
173 | + | ||
174 | + detailsLabel.text = fullText | ||
175 | + detailsLabel.numberOfLines = 3 | ||
176 | + detailsLabel.font = UIFont(name: "PingLCG-Regular", size: 18) | ||
177 | + detailsLabel.textColor = UIColor(rgb: 0x020E1C) | ||
178 | + | ||
179 | + // Add tap gesture | ||
180 | + let tapGesture = UITapGestureRecognizer(target: self, action: #selector(toggleDetailsExpansion)) | ||
181 | + detailsLabel.isUserInteractionEnabled = true | ||
182 | + detailsLabel.addGestureRecognizer(tapGesture) | ||
183 | + } | ||
184 | + | ||
185 | + @objc private func toggleDetailsExpansion() { | ||
186 | + isDetailsExpanded.toggle() | ||
187 | + | ||
188 | + UIView.animate(withDuration: 0.3) { | ||
189 | + self.detailsLabel.numberOfLines = self.isDetailsExpanded ? 0 : 3 | ||
190 | + self.view.layoutIfNeeded() | ||
191 | + } | ||
192 | + } | ||
29 | } | 193 | } | ... | ... |
1 | -<?xml version="1.0" encoding="UTF-8" standalone="no"?> | 1 | +<?xml version="1.0" encoding="UTF-8"?> |
2 | -<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13142" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> | 2 | +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23094" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> |
3 | + <device id="retina6_12" orientation="portrait" appearance="light"/> | ||
3 | <dependencies> | 4 | <dependencies> |
4 | - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12042"/> | 5 | + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23084"/> |
5 | <capability name="Safe area layout guides" minToolsVersion="9.0"/> | 6 | <capability name="Safe area layout guides" minToolsVersion="9.0"/> |
7 | + <capability name="System colors in document resources" minToolsVersion="11.0"/> | ||
6 | <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> | 8 | <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
7 | </dependencies> | 9 | </dependencies> |
8 | <objects> | 10 | <objects> |
9 | - <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="CouponViewController" customModuleProvider="target"> | 11 | + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="CouponViewController" customModule="SwiftWarplyFramework" customModuleProvider="target"> |
10 | <connections> | 12 | <connections> |
13 | + <outlet property="copyButton" destination="uPp-hJ-U97" id="99c-QK-4uC"/> | ||
14 | + <outlet property="copyButtonImage" destination="AXc-Yh-5Ek" id="4VG-c1-zbJ"/> | ||
15 | + <outlet property="couponCodeArrowImage" destination="YoJ-w2-mm9" id="oQm-Mm-FL8"/> | ||
16 | + <outlet property="couponCodeButton" destination="5sx-2G-cCM" id="vuv-NX-y5I"/> | ||
17 | + <outlet property="couponCodeContainerView" destination="ElJ-Te-N4M" id="84s-Ab-iAG"/> | ||
18 | + <outlet property="couponCodeContentHeightConstraint" destination="ky8-Xs-cjh" id="P1b-xY-vde"/> | ||
19 | + <outlet property="couponCodeContentView" destination="wT1-HY-mg9" id="PEK-wT-l4v"/> | ||
20 | + <outlet property="couponCodeHeaderView" destination="cTO-BG-Gzi" id="6Xm-p8-F13"/> | ||
21 | + <outlet property="couponCodeTitleLabel" destination="lEF-bh-hOi" id="dVH-Zs-Rbg"/> | ||
22 | + <outlet property="couponCodeValueLabel" destination="2Fn-5d-j8v" id="Dlf-7P-qlY"/> | ||
23 | + <outlet property="couponImage" destination="Xiw-td-OMd" id="OxY-cx-CHa"/> | ||
24 | + <outlet property="couponQRArrowImage" destination="OXW-Jx-8wp" id="ijU-6O-hcN"/> | ||
25 | + <outlet property="couponQRButton" destination="xd4-3b-eOl" id="ElE-cn-nPX"/> | ||
26 | + <outlet property="couponQRContainerView" destination="Cwz-uh-Zn5" id="igH-cb-FMa"/> | ||
27 | + <outlet property="couponQRContentHeightConstraint" destination="odW-jh-UiA" id="LfK-Hl-1Ks"/> | ||
28 | + <outlet property="couponQRContentView" destination="xqU-7k-Vxg" id="t1n-V2-Tv3"/> | ||
29 | + <outlet property="couponQRHeaderView" destination="eEy-8l-te2" id="0U3-5V-9BB"/> | ||
30 | + <outlet property="couponQRImage" destination="Z9w-Ue-Lij" id="cIj-vB-EMz"/> | ||
31 | + <outlet property="couponQRTitleLabel" destination="NZj-6a-KB7" id="Yr1-32-jxM"/> | ||
32 | + <outlet property="detailsLabel" destination="X7C-0H-IhU" id="fvt-P2-urI"/> | ||
33 | + <outlet property="expirationLabel" destination="HLR-Nk-7Gm" id="sRz-Ot-p9b"/> | ||
34 | + <outlet property="favoriteImage" destination="1Kx-s2-p1l" id="kMd-LA-04k"/> | ||
35 | + <outlet property="infoImage" destination="tFA-1H-T5S" id="Pat-1s-nbE"/> | ||
36 | + <outlet property="infoLabel" destination="K34-LM-bC1" id="wIV-dh-aQs"/> | ||
37 | + <outlet property="infoView" destination="89U-JU-Imv" id="w8A-vj-7Lb"/> | ||
38 | + <outlet property="mapButton" destination="j1U-rV-0FP" id="K5C-V5-ejo"/> | ||
39 | + <outlet property="shareImage" destination="WjF-6P-8Wn" id="f7E-u8-Efc"/> | ||
40 | + <outlet property="subtitleLabel" destination="VJr-Mc-WMf" id="D5i-m9-5pG"/> | ||
41 | + <outlet property="termsButton" destination="Id4-Xw-01i" id="K7V-uP-07v"/> | ||
42 | + <outlet property="termsLabel" destination="Ak8-Tc-k8X" id="lGl-Bm-k5q"/> | ||
43 | + <outlet property="termsLabelHeight" destination="ZA1-TX-m9Y" id="zDj-wU-mre"/> | ||
44 | + <outlet property="titleLabel" destination="u54-xs-f5a" id="jG6-28-Q0R"/> | ||
11 | <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> | 45 | <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> |
46 | + <outlet property="websiteButton" destination="t8z-s1-rIA" id="qZa-ex-J6Y"/> | ||
12 | </connections> | 47 | </connections> |
13 | </placeholder> | 48 | </placeholder> |
14 | <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> | 49 | <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> |
15 | <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT"> | 50 | <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT"> |
16 | - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | 51 | + <rect key="frame" x="0.0" y="0.0" width="393" height="852"/> |
17 | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | 52 | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
18 | - <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/> | 53 | + <subviews> |
54 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="XaT-fU-eNh" userLabel="Main View"> | ||
55 | + <rect key="frame" x="0.0" y="59" width="393" height="793"/> | ||
56 | + <subviews> | ||
57 | + <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YpC-uS-mhw"> | ||
58 | + <rect key="frame" x="0.0" y="0.0" width="393" height="793"/> | ||
59 | + <subviews> | ||
60 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="qrm-40-JLT" userLabel="Scroll Content View"> | ||
61 | + <rect key="frame" x="0.0" y="0.0" width="393" height="1225.6666666666667"/> | ||
62 | + <subviews> | ||
63 | + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Xiw-td-OMd" userLabel="Coupon Image View"> | ||
64 | + <rect key="frame" x="0.0" y="0.0" width="393" height="211"/> | ||
65 | + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
66 | + <constraints> | ||
67 | + <constraint firstAttribute="height" constant="211" id="fMe-eO-hFu"/> | ||
68 | + </constraints> | ||
69 | + </imageView> | ||
70 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="89U-JU-Imv" userLabel="Info View"> | ||
71 | + <rect key="frame" x="248" y="17" width="129" height="20.666666666666671"/> | ||
72 | + <subviews> | ||
73 | + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="tFA-1H-T5S" userLabel="Info Image View"> | ||
74 | + <rect key="frame" x="1" y="3.6666666666666723" width="13.666666666666666" height="13.333333333333336"/> | ||
75 | + <constraints> | ||
76 | + <constraint firstAttribute="height" constant="13.5" id="uQt-vY-kbk"/> | ||
77 | + <constraint firstAttribute="width" constant="13.5" id="yzR-99-6Vp"/> | ||
78 | + </constraints> | ||
79 | + </imageView> | ||
80 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Περισσότερα" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="K34-LM-bC1" userLabel="Info Label"> | ||
81 | + <rect key="frame" x="19" y="-0.3333333333333286" width="100" height="21"/> | ||
82 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
83 | + <nil key="textColor"/> | ||
84 | + <nil key="highlightedColor"/> | ||
85 | + </label> | ||
86 | + </subviews> | ||
87 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
88 | + <constraints> | ||
89 | + <constraint firstAttribute="bottom" secondItem="tFA-1H-T5S" secondAttribute="bottom" constant="3.5" id="2LU-6d-9tG"/> | ||
90 | + <constraint firstAttribute="trailing" secondItem="K34-LM-bC1" secondAttribute="trailing" constant="10" id="7h2-jE-9iR"/> | ||
91 | + <constraint firstItem="K34-LM-bC1" firstAttribute="leading" secondItem="tFA-1H-T5S" secondAttribute="trailing" constant="4.5" id="9BF-QB-VRC"/> | ||
92 | + <constraint firstItem="K34-LM-bC1" firstAttribute="centerY" secondItem="89U-JU-Imv" secondAttribute="centerY" id="AJ7-80-sbu"/> | ||
93 | + <constraint firstItem="tFA-1H-T5S" firstAttribute="top" secondItem="89U-JU-Imv" secondAttribute="top" constant="3.5" id="Nyk-Ax-H7g"/> | ||
94 | + <constraint firstItem="tFA-1H-T5S" firstAttribute="leading" secondItem="89U-JU-Imv" secondAttribute="leading" constant="1" id="xHt-ua-5rb"/> | ||
95 | + </constraints> | ||
96 | + </view> | ||
97 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="u54-xs-f5a" userLabel="Title Label"> | ||
98 | + <rect key="frame" x="24" y="234" width="249" height="20.333333333333343"/> | ||
99 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
100 | + <nil key="textColor"/> | ||
101 | + <nil key="highlightedColor"/> | ||
102 | + </label> | ||
103 | + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="1Kx-s2-p1l" userLabel="Favorite Image View"> | ||
104 | + <rect key="frame" x="284" y="228" width="40" height="40"/> | ||
105 | + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
106 | + <constraints> | ||
107 | + <constraint firstAttribute="width" constant="40" id="cMn-6O-CHy"/> | ||
108 | + <constraint firstAttribute="height" constant="40" id="wxC-Bz-5Ya"/> | ||
109 | + </constraints> | ||
110 | + </imageView> | ||
111 | + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="WjF-6P-8Wn" userLabel="Share Image View"> | ||
112 | + <rect key="frame" x="335" y="228" width="40" height="40"/> | ||
113 | + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
114 | + <constraints> | ||
115 | + <constraint firstAttribute="height" constant="40" id="Hb1-K6-gef"/> | ||
116 | + <constraint firstAttribute="width" constant="40" id="fIZ-xu-SFW"/> | ||
117 | + </constraints> | ||
118 | + </imageView> | ||
119 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="VJr-Mc-WMf" userLabel="Subtitle Label"> | ||
120 | + <rect key="frame" x="24" y="254.33333333333334" width="345" height="20.333333333333343"/> | ||
121 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
122 | + <nil key="textColor"/> | ||
123 | + <nil key="highlightedColor"/> | ||
124 | + </label> | ||
125 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="HLR-Nk-7Gm" userLabel="Expiration Label"> | ||
126 | + <rect key="frame" x="24" y="288.66666666666669" width="345" height="20.333333333333314"/> | ||
127 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
128 | + <nil key="textColor"/> | ||
129 | + <nil key="highlightedColor"/> | ||
130 | + </label> | ||
131 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="X7C-0H-IhU" userLabel="Details Label"> | ||
132 | + <rect key="frame" x="24" y="329" width="345" height="20.333333333333314"/> | ||
133 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
134 | + <nil key="textColor"/> | ||
135 | + <nil key="highlightedColor"/> | ||
136 | + </label> | ||
137 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ElJ-Te-N4M" userLabel="CouponCodeContainerView"> | ||
138 | + <rect key="frame" x="24" y="383.33333333333331" width="345" height="182.99999999999994"/> | ||
139 | + <subviews> | ||
140 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="cTO-BG-Gzi" userLabel="CouponCodeHeaderView"> | ||
141 | + <rect key="frame" x="0.0" y="0.0" width="345" height="55"/> | ||
142 | + <subviews> | ||
143 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="lEF-bh-hOi" userLabel="CouponCodeTitleLabel"> | ||
144 | + <rect key="frame" x="17" y="17" width="277" height="21"/> | ||
145 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
146 | + <nil key="textColor"/> | ||
147 | + <nil key="highlightedColor"/> | ||
148 | + </label> | ||
149 | + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="YoJ-w2-mm9" userLabel="CouponCodeArrowImage"> | ||
150 | + <rect key="frame" x="311" y="21" width="13" height="13"/> | ||
151 | + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
152 | + <constraints> | ||
153 | + <constraint firstAttribute="width" constant="13" id="627-N9-Nwq"/> | ||
154 | + <constraint firstAttribute="height" constant="13" id="MqD-PS-KVR"/> | ||
155 | + </constraints> | ||
156 | + </imageView> | ||
157 | + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="5sx-2G-cCM" userLabel="CouponCodeButton"> | ||
158 | + <rect key="frame" x="0.0" y="0.0" width="345" height="55"/> | ||
159 | + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
160 | + <state key="normal" title="Button"/> | ||
161 | + <buttonConfiguration key="configuration" style="plain" title="Button"> | ||
162 | + <color key="baseForegroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
163 | + </buttonConfiguration> | ||
164 | + </button> | ||
165 | + </subviews> | ||
166 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
167 | + <constraints> | ||
168 | + <constraint firstAttribute="bottom" secondItem="5sx-2G-cCM" secondAttribute="bottom" id="5b7-2R-dAJ"/> | ||
169 | + <constraint firstAttribute="trailing" secondItem="5sx-2G-cCM" secondAttribute="trailing" id="CI1-1e-hkQ"/> | ||
170 | + <constraint firstItem="lEF-bh-hOi" firstAttribute="leading" secondItem="cTO-BG-Gzi" secondAttribute="leading" constant="17" id="Gld-ir-1gP"/> | ||
171 | + <constraint firstItem="5sx-2G-cCM" firstAttribute="top" secondItem="cTO-BG-Gzi" secondAttribute="top" id="MVC-wv-Mpz"/> | ||
172 | + <constraint firstItem="YoJ-w2-mm9" firstAttribute="centerY" secondItem="cTO-BG-Gzi" secondAttribute="centerY" id="UcW-oq-76N"/> | ||
173 | + <constraint firstAttribute="bottom" secondItem="lEF-bh-hOi" secondAttribute="bottom" constant="17" id="WvU-KU-XPP"/> | ||
174 | + <constraint firstItem="lEF-bh-hOi" firstAttribute="top" secondItem="cTO-BG-Gzi" secondAttribute="top" constant="17" id="a9J-3H-Fxg"/> | ||
175 | + <constraint firstItem="5sx-2G-cCM" firstAttribute="leading" secondItem="cTO-BG-Gzi" secondAttribute="leading" id="eSr-hy-hgk"/> | ||
176 | + <constraint firstAttribute="trailing" secondItem="YoJ-w2-mm9" secondAttribute="trailing" constant="21" id="fle-ul-e4O"/> | ||
177 | + <constraint firstItem="YoJ-w2-mm9" firstAttribute="leading" secondItem="lEF-bh-hOi" secondAttribute="trailing" constant="17" id="wG0-2i-Ums"/> | ||
178 | + </constraints> | ||
179 | + </view> | ||
180 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="wT1-HY-mg9" userLabel="CouponCodeContentView"> | ||
181 | + <rect key="frame" x="0.0" y="55" width="345" height="128"/> | ||
182 | + <subviews> | ||
183 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2Fn-5d-j8v" userLabel="CouponCodeValueLabel" customClass="CopyableLabel"> | ||
184 | + <rect key="frame" x="16.999999999999996" y="26.000000000000057" width="56.666666666666657" height="76"/> | ||
185 | + <fontDescription key="fontDescription" type="system" pointSize="24"/> | ||
186 | + <nil key="textColor"/> | ||
187 | + <nil key="highlightedColor"/> | ||
188 | + </label> | ||
189 | + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="AXc-Yh-5Ek" userLabel="CopyButtonImage"> | ||
190 | + <rect key="frame" x="84.666666666666671" y="47.666666666666686" width="33" height="33"/> | ||
191 | + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
192 | + <constraints> | ||
193 | + <constraint firstAttribute="height" constant="33" id="7ds-Ao-fBn"/> | ||
194 | + <constraint firstAttribute="width" constant="33" id="CQY-h3-dmj"/> | ||
195 | + </constraints> | ||
196 | + </imageView> | ||
197 | + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="uPp-hJ-U97" userLabel="CouponCopyButton"> | ||
198 | + <rect key="frame" x="84.666666666666671" y="47.666666666666686" width="33" height="33"/> | ||
199 | + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
200 | + <state key="normal" title="Button"/> | ||
201 | + <buttonConfiguration key="configuration" style="plain" title="Button"> | ||
202 | + <color key="baseForegroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
203 | + </buttonConfiguration> | ||
204 | + </button> | ||
205 | + </subviews> | ||
206 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
207 | + <constraints> | ||
208 | + <constraint firstItem="uPp-hJ-U97" firstAttribute="leading" secondItem="AXc-Yh-5Ek" secondAttribute="leading" id="4AX-eb-8Eo"/> | ||
209 | + <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="AXc-Yh-5Ek" secondAttribute="trailing" constant="17" id="7Pr-rr-Awn"/> | ||
210 | + <constraint firstItem="uPp-hJ-U97" firstAttribute="trailing" secondItem="AXc-Yh-5Ek" secondAttribute="trailing" id="BlL-II-2cP"/> | ||
211 | + <constraint firstItem="AXc-Yh-5Ek" firstAttribute="centerY" secondItem="wT1-HY-mg9" secondAttribute="centerY" id="FdP-94-Drs"/> | ||
212 | + <constraint firstItem="2Fn-5d-j8v" firstAttribute="leading" secondItem="wT1-HY-mg9" secondAttribute="leading" constant="17" id="HYO-ML-C8b"/> | ||
213 | + <constraint firstItem="2Fn-5d-j8v" firstAttribute="top" secondItem="wT1-HY-mg9" secondAttribute="top" constant="26" id="XpY-aU-BzN"/> | ||
214 | + <constraint firstAttribute="bottom" secondItem="2Fn-5d-j8v" secondAttribute="bottom" constant="26" id="Y10-PC-eP5"/> | ||
215 | + <constraint firstItem="uPp-hJ-U97" firstAttribute="top" secondItem="AXc-Yh-5Ek" secondAttribute="top" id="hSS-7f-MiM"/> | ||
216 | + <constraint firstAttribute="height" constant="128" id="ky8-Xs-cjh"/> | ||
217 | + <constraint firstItem="uPp-hJ-U97" firstAttribute="bottom" secondItem="AXc-Yh-5Ek" secondAttribute="bottom" id="v1F-S6-muO"/> | ||
218 | + <constraint firstItem="AXc-Yh-5Ek" firstAttribute="leading" secondItem="2Fn-5d-j8v" secondAttribute="trailing" constant="11" id="vuS-Bk-Q0J"/> | ||
219 | + </constraints> | ||
220 | + </view> | ||
221 | + </subviews> | ||
222 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
223 | + <constraints> | ||
224 | + <constraint firstItem="wT1-HY-mg9" firstAttribute="leading" secondItem="ElJ-Te-N4M" secondAttribute="leading" id="1fU-8Q-kc5"/> | ||
225 | + <constraint firstItem="cTO-BG-Gzi" firstAttribute="leading" secondItem="ElJ-Te-N4M" secondAttribute="leading" id="827-rg-YnF"/> | ||
226 | + <constraint firstItem="cTO-BG-Gzi" firstAttribute="top" secondItem="ElJ-Te-N4M" secondAttribute="top" id="DCX-hf-OZ5"/> | ||
227 | + <constraint firstAttribute="bottom" secondItem="wT1-HY-mg9" secondAttribute="bottom" id="NTj-Gv-gK2"/> | ||
228 | + <constraint firstAttribute="trailing" secondItem="wT1-HY-mg9" secondAttribute="trailing" id="ssf-Xv-Bxx"/> | ||
229 | + <constraint firstAttribute="trailing" secondItem="cTO-BG-Gzi" secondAttribute="trailing" id="umy-qN-JFu"/> | ||
230 | + <constraint firstItem="wT1-HY-mg9" firstAttribute="top" secondItem="cTO-BG-Gzi" secondAttribute="bottom" id="wkk-WM-rVY"/> | ||
231 | + </constraints> | ||
232 | + </view> | ||
233 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Cwz-uh-Zn5" userLabel="CouponQRContainerView"> | ||
234 | + <rect key="frame" x="24" y="589.33333333333337" width="345" height="305"/> | ||
235 | + <subviews> | ||
236 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="eEy-8l-te2" userLabel="CouponQRHeaderView"> | ||
237 | + <rect key="frame" x="0.0" y="0.0" width="345" height="55"/> | ||
238 | + <subviews> | ||
239 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NZj-6a-KB7" userLabel="CouponQRTitleLabel"> | ||
240 | + <rect key="frame" x="17" y="17" width="277" height="21"/> | ||
241 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
242 | + <nil key="textColor"/> | ||
243 | + <nil key="highlightedColor"/> | ||
244 | + </label> | ||
245 | + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="OXW-Jx-8wp" userLabel="CouponQRArrowImage"> | ||
246 | + <rect key="frame" x="311" y="21" width="13" height="13"/> | ||
247 | + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
248 | + <constraints> | ||
249 | + <constraint firstAttribute="width" constant="13" id="G7f-Pn-WhD"/> | ||
250 | + <constraint firstAttribute="height" constant="13" id="zVL-H5-ijW"/> | ||
251 | + </constraints> | ||
252 | + </imageView> | ||
253 | + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="xd4-3b-eOl" userLabel="CouponQRButton"> | ||
254 | + <rect key="frame" x="0.0" y="0.0" width="345" height="55"/> | ||
255 | + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
256 | + <state key="normal" title="Button"/> | ||
257 | + <buttonConfiguration key="configuration" style="plain" title="Button"> | ||
258 | + <color key="baseForegroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
259 | + </buttonConfiguration> | ||
260 | + </button> | ||
261 | + </subviews> | ||
262 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
263 | + <constraints> | ||
264 | + <constraint firstAttribute="bottom" secondItem="xd4-3b-eOl" secondAttribute="bottom" id="1yG-EQ-krt"/> | ||
265 | + <constraint firstAttribute="trailing" secondItem="xd4-3b-eOl" secondAttribute="trailing" id="4cA-IG-MEv"/> | ||
266 | + <constraint firstAttribute="trailing" secondItem="OXW-Jx-8wp" secondAttribute="trailing" constant="21" id="61o-1d-G8i"/> | ||
267 | + <constraint firstAttribute="bottom" secondItem="NZj-6a-KB7" secondAttribute="bottom" constant="17" id="7Nq-qK-srn"/> | ||
268 | + <constraint firstItem="xd4-3b-eOl" firstAttribute="leading" secondItem="eEy-8l-te2" secondAttribute="leading" id="BBO-lA-FMd"/> | ||
269 | + <constraint firstItem="NZj-6a-KB7" firstAttribute="leading" secondItem="eEy-8l-te2" secondAttribute="leading" constant="17" id="C9L-Ez-BxU"/> | ||
270 | + <constraint firstItem="xd4-3b-eOl" firstAttribute="top" secondItem="eEy-8l-te2" secondAttribute="top" id="Omk-77-XDb"/> | ||
271 | + <constraint firstItem="OXW-Jx-8wp" firstAttribute="leading" secondItem="NZj-6a-KB7" secondAttribute="trailing" constant="17" id="gAd-xN-NrH"/> | ||
272 | + <constraint firstItem="OXW-Jx-8wp" firstAttribute="centerY" secondItem="eEy-8l-te2" secondAttribute="centerY" id="gFQ-3l-Vyc"/> | ||
273 | + <constraint firstItem="NZj-6a-KB7" firstAttribute="top" secondItem="eEy-8l-te2" secondAttribute="top" constant="17" id="x3M-GO-42H"/> | ||
274 | + </constraints> | ||
275 | + </view> | ||
276 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xqU-7k-Vxg" userLabel="CouponQRContentView"> | ||
277 | + <rect key="frame" x="0.0" y="55" width="345" height="250"/> | ||
278 | + <subviews> | ||
279 | + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Z9w-Ue-Lij" userLabel="CouponQRImage"> | ||
280 | + <rect key="frame" x="72.666666666666686" y="25" width="200" height="200"/> | ||
281 | + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
282 | + <constraints> | ||
283 | + <constraint firstAttribute="width" constant="200" id="UHz-Fg-n1x"/> | ||
284 | + <constraint firstAttribute="height" constant="200" id="itM-bK-4dv"/> | ||
285 | + </constraints> | ||
286 | + </imageView> | ||
287 | + </subviews> | ||
288 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
289 | + <constraints> | ||
290 | + <constraint firstItem="Z9w-Ue-Lij" firstAttribute="centerX" secondItem="xqU-7k-Vxg" secondAttribute="centerX" id="3jb-mY-gez"/> | ||
291 | + <constraint firstAttribute="bottom" secondItem="Z9w-Ue-Lij" secondAttribute="bottom" constant="25" id="4Wr-Ld-HWz"/> | ||
292 | + <constraint firstItem="Z9w-Ue-Lij" firstAttribute="top" secondItem="xqU-7k-Vxg" secondAttribute="top" constant="25" id="DoG-pU-Ipv"/> | ||
293 | + <constraint firstAttribute="height" constant="250" id="odW-jh-UiA"/> | ||
294 | + </constraints> | ||
295 | + </view> | ||
296 | + </subviews> | ||
297 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
298 | + <constraints> | ||
299 | + <constraint firstAttribute="trailing" secondItem="xqU-7k-Vxg" secondAttribute="trailing" id="JEa-Zg-JIu"/> | ||
300 | + <constraint firstItem="xqU-7k-Vxg" firstAttribute="top" secondItem="eEy-8l-te2" secondAttribute="bottom" id="Jf6-P1-9qS"/> | ||
301 | + <constraint firstItem="eEy-8l-te2" firstAttribute="leading" secondItem="Cwz-uh-Zn5" secondAttribute="leading" id="iZp-kc-tZ2"/> | ||
302 | + <constraint firstItem="xqU-7k-Vxg" firstAttribute="leading" secondItem="Cwz-uh-Zn5" secondAttribute="leading" id="nxQ-kb-BhT"/> | ||
303 | + <constraint firstItem="eEy-8l-te2" firstAttribute="top" secondItem="Cwz-uh-Zn5" secondAttribute="top" id="qho-3x-oyY"/> | ||
304 | + <constraint firstAttribute="trailing" secondItem="eEy-8l-te2" secondAttribute="trailing" id="sg9-Jq-q2G"/> | ||
305 | + <constraint firstAttribute="bottom" secondItem="xqU-7k-Vxg" secondAttribute="bottom" id="wUN-aQ-c9t"/> | ||
306 | + </constraints> | ||
307 | + </view> | ||
308 | + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Id4-Xw-01i" userLabel="TermsButton"> | ||
309 | + <rect key="frame" x="24" y="944.33333333333337" width="345" height="35"/> | ||
310 | + <state key="normal" title="Button"/> | ||
311 | + <buttonConfiguration key="configuration" style="plain" title="Button"/> | ||
312 | + </button> | ||
313 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ak8-Tc-k8X" userLabel="TermsLabel"> | ||
314 | + <rect key="frame" x="24" y="989.33333333333326" width="345" height="20.333333333333371"/> | ||
315 | + <constraints> | ||
316 | + <constraint firstAttribute="height" constant="20.329999999999998" id="ZA1-TX-m9Y"/> | ||
317 | + </constraints> | ||
318 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
319 | + <nil key="textColor"/> | ||
320 | + <nil key="highlightedColor"/> | ||
321 | + </label> | ||
322 | + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="j1U-rV-0FP" userLabel="MapButton"> | ||
323 | + <rect key="frame" x="24" y="1049.6666666666667" width="345" height="55"/> | ||
324 | + <constraints> | ||
325 | + <constraint firstAttribute="height" constant="55" id="BZv-RS-JfU"/> | ||
326 | + </constraints> | ||
327 | + <state key="normal" title="Button"/> | ||
328 | + <buttonConfiguration key="configuration" style="plain" title="Button"/> | ||
329 | + </button> | ||
330 | + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="t8z-s1-rIA" userLabel="WebsiteButton"> | ||
331 | + <rect key="frame" x="24" y="1124.6666666666667" width="345" height="55"/> | ||
332 | + <constraints> | ||
333 | + <constraint firstAttribute="height" constant="55" id="EUh-DN-fJh"/> | ||
334 | + </constraints> | ||
335 | + <state key="normal" title="Button"/> | ||
336 | + <buttonConfiguration key="configuration" style="plain" title="Button"/> | ||
337 | + </button> | ||
338 | + </subviews> | ||
339 | + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
340 | + <constraints> | ||
341 | + <constraint firstItem="t8z-s1-rIA" firstAttribute="leading" secondItem="qrm-40-JLT" secondAttribute="leading" constant="24" id="0ws-pJ-lPS"/> | ||
342 | + <constraint firstItem="1Kx-s2-p1l" firstAttribute="leading" secondItem="u54-xs-f5a" secondAttribute="trailing" constant="11" id="22w-QH-w0I"/> | ||
343 | + <constraint firstItem="Cwz-uh-Zn5" firstAttribute="leading" secondItem="qrm-40-JLT" secondAttribute="leading" constant="24" id="2Cq-bG-OqH"/> | ||
344 | + <constraint firstItem="HLR-Nk-7Gm" firstAttribute="leading" secondItem="qrm-40-JLT" secondAttribute="leading" constant="24" id="3IS-pt-47I"/> | ||
345 | + <constraint firstItem="Id4-Xw-01i" firstAttribute="top" secondItem="Cwz-uh-Zn5" secondAttribute="bottom" constant="50" id="CwG-Ev-Rvi"/> | ||
346 | + <constraint firstItem="WjF-6P-8Wn" firstAttribute="top" secondItem="Xiw-td-OMd" secondAttribute="bottom" constant="17" id="DTU-uH-exC"/> | ||
347 | + <constraint firstItem="Xiw-td-OMd" firstAttribute="leading" secondItem="qrm-40-JLT" secondAttribute="leading" id="GFv-Mo-QN0"/> | ||
348 | + <constraint firstAttribute="trailing" secondItem="t8z-s1-rIA" secondAttribute="trailing" constant="24" id="Hel-rG-nvJ"/> | ||
349 | + <constraint firstItem="VJr-Mc-WMf" firstAttribute="leading" secondItem="qrm-40-JLT" secondAttribute="leading" constant="24" id="Hoa-qW-OtC"/> | ||
350 | + <constraint firstItem="89U-JU-Imv" firstAttribute="top" secondItem="qrm-40-JLT" secondAttribute="top" constant="17" id="JQF-r7-v7p"/> | ||
351 | + <constraint firstAttribute="trailing" secondItem="Cwz-uh-Zn5" secondAttribute="trailing" constant="24" id="MCe-c8-R0P"/> | ||
352 | + <constraint firstAttribute="trailing" secondItem="89U-JU-Imv" secondAttribute="trailing" constant="16" id="QJ1-AA-bn9"/> | ||
353 | + <constraint firstItem="u54-xs-f5a" firstAttribute="leading" secondItem="qrm-40-JLT" secondAttribute="leading" constant="24" id="ScM-kH-ZEe"/> | ||
354 | + <constraint firstItem="VJr-Mc-WMf" firstAttribute="top" secondItem="u54-xs-f5a" secondAttribute="bottom" id="Ssw-da-ntM"/> | ||
355 | + <constraint firstItem="Id4-Xw-01i" firstAttribute="leading" secondItem="qrm-40-JLT" secondAttribute="leading" constant="24" id="T08-vK-q5K"/> | ||
356 | + <constraint firstAttribute="trailing" secondItem="Xiw-td-OMd" secondAttribute="trailing" id="TGH-lz-pn5"/> | ||
357 | + <constraint firstAttribute="trailing" secondItem="Id4-Xw-01i" secondAttribute="trailing" constant="24" id="YjW-2Y-Pgv"/> | ||
358 | + <constraint firstItem="ElJ-Te-N4M" firstAttribute="leading" secondItem="qrm-40-JLT" secondAttribute="leading" constant="24" id="abd-4G-pI5"/> | ||
359 | + <constraint firstItem="Xiw-td-OMd" firstAttribute="top" secondItem="qrm-40-JLT" secondAttribute="top" id="ajI-sR-3Pt"/> | ||
360 | + <constraint firstAttribute="trailing" secondItem="j1U-rV-0FP" secondAttribute="trailing" constant="24" id="bBU-zw-nbU"/> | ||
361 | + <constraint firstAttribute="bottom" secondItem="t8z-s1-rIA" secondAttribute="bottom" constant="46" id="bBi-iY-kAp"/> | ||
362 | + <constraint firstItem="Ak8-Tc-k8X" firstAttribute="top" secondItem="Id4-Xw-01i" secondAttribute="bottom" constant="10" id="bGA-mQ-RpV"/> | ||
363 | + <constraint firstItem="WjF-6P-8Wn" firstAttribute="leading" secondItem="1Kx-s2-p1l" secondAttribute="trailing" constant="11" id="bI6-jl-1U8"/> | ||
364 | + <constraint firstAttribute="trailing" secondItem="X7C-0H-IhU" secondAttribute="trailing" constant="24" id="cXA-ke-cJ7"/> | ||
365 | + <constraint firstItem="X7C-0H-IhU" firstAttribute="leading" secondItem="qrm-40-JLT" secondAttribute="leading" constant="24" id="d5O-SJ-gva"/> | ||
366 | + <constraint firstAttribute="trailing" secondItem="HLR-Nk-7Gm" secondAttribute="trailing" constant="24" id="eDk-HB-bk1"/> | ||
367 | + <constraint firstAttribute="trailing" secondItem="ElJ-Te-N4M" secondAttribute="trailing" constant="24" id="f9R-SZ-ReV"/> | ||
368 | + <constraint firstItem="j1U-rV-0FP" firstAttribute="top" secondItem="Ak8-Tc-k8X" secondAttribute="bottom" constant="40" id="gym-1h-ewZ"/> | ||
369 | + <constraint firstItem="HLR-Nk-7Gm" firstAttribute="top" secondItem="VJr-Mc-WMf" secondAttribute="bottom" constant="14" id="hfN-OE-fbk"/> | ||
370 | + <constraint firstItem="j1U-rV-0FP" firstAttribute="leading" secondItem="qrm-40-JLT" secondAttribute="leading" constant="24" id="jac-wq-3ZZ"/> | ||
371 | + <constraint firstItem="ElJ-Te-N4M" firstAttribute="top" secondItem="X7C-0H-IhU" secondAttribute="bottom" constant="34" id="jpp-m0-Hqs"/> | ||
372 | + <constraint firstItem="t8z-s1-rIA" firstAttribute="top" secondItem="j1U-rV-0FP" secondAttribute="bottom" constant="20" id="lPW-dz-sru"/> | ||
373 | + <constraint firstItem="X7C-0H-IhU" firstAttribute="top" secondItem="HLR-Nk-7Gm" secondAttribute="bottom" constant="20" id="mg0-Su-33x"/> | ||
374 | + <constraint firstAttribute="trailing" secondItem="Ak8-Tc-k8X" secondAttribute="trailing" constant="24" id="oCu-13-6UV"/> | ||
375 | + <constraint firstAttribute="trailing" secondItem="WjF-6P-8Wn" secondAttribute="trailing" constant="18" id="qhV-dn-76R"/> | ||
376 | + <constraint firstItem="Cwz-uh-Zn5" firstAttribute="top" secondItem="ElJ-Te-N4M" secondAttribute="bottom" constant="23" id="sxz-YM-etJ"/> | ||
377 | + <constraint firstItem="Ak8-Tc-k8X" firstAttribute="leading" secondItem="qrm-40-JLT" secondAttribute="leading" constant="24" id="v9m-et-nFd"/> | ||
378 | + <constraint firstItem="u54-xs-f5a" firstAttribute="top" secondItem="Xiw-td-OMd" secondAttribute="bottom" constant="23" id="w3l-OQ-ddG"/> | ||
379 | + <constraint firstAttribute="trailing" secondItem="VJr-Mc-WMf" secondAttribute="trailing" constant="24" id="wJA-JP-ZWT"/> | ||
380 | + <constraint firstItem="1Kx-s2-p1l" firstAttribute="top" secondItem="Xiw-td-OMd" secondAttribute="bottom" constant="17" id="zNT-Y8-JpJ"/> | ||
381 | + </constraints> | ||
382 | + </view> | ||
383 | + </subviews> | ||
384 | + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
385 | + <constraints> | ||
386 | + <constraint firstItem="qrm-40-JLT" firstAttribute="width" secondItem="zwi-OX-nWJ" secondAttribute="width" id="46f-KH-fWt"/> | ||
387 | + <constraint firstItem="qrm-40-JLT" firstAttribute="leading" secondItem="z3x-Kv-DPe" secondAttribute="leading" id="Tqa-O8-lWQ"/> | ||
388 | + <constraint firstItem="qrm-40-JLT" firstAttribute="bottom" secondItem="z3x-Kv-DPe" secondAttribute="bottom" id="bZd-DN-qHf"/> | ||
389 | + <constraint firstItem="qrm-40-JLT" firstAttribute="top" secondItem="z3x-Kv-DPe" secondAttribute="top" id="tU6-Lf-ZiK"/> | ||
390 | + <constraint firstItem="qrm-40-JLT" firstAttribute="trailing" secondItem="z3x-Kv-DPe" secondAttribute="trailing" id="wkW-P9-vPb"/> | ||
391 | + </constraints> | ||
392 | + <viewLayoutGuide key="contentLayoutGuide" id="z3x-Kv-DPe"/> | ||
393 | + <viewLayoutGuide key="frameLayoutGuide" id="zwi-OX-nWJ"/> | ||
394 | + </scrollView> | ||
395 | + </subviews> | ||
396 | + <color key="backgroundColor" red="0.94901960784313721" green="0.94901960784313721" blue="0.94901960784313721" alpha="1" colorSpace="calibratedRGB"/> | ||
397 | + <constraints> | ||
398 | + <constraint firstAttribute="bottom" secondItem="YpC-uS-mhw" secondAttribute="bottom" id="8Cp-bx-YIo"/> | ||
399 | + <constraint firstItem="YpC-uS-mhw" firstAttribute="top" secondItem="XaT-fU-eNh" secondAttribute="top" id="FzN-9C-IcE"/> | ||
400 | + <constraint firstItem="qrm-40-JLT" firstAttribute="height" relation="greaterThanOrEqual" secondItem="XaT-fU-eNh" secondAttribute="height" id="Haf-bw-iTI"/> | ||
401 | + <constraint firstItem="YpC-uS-mhw" firstAttribute="leading" secondItem="XaT-fU-eNh" secondAttribute="leading" id="npV-aw-Pmw"/> | ||
402 | + <constraint firstAttribute="trailing" secondItem="YpC-uS-mhw" secondAttribute="trailing" id="wj8-zH-sYG"/> | ||
403 | + </constraints> | ||
404 | + </view> | ||
405 | + </subviews> | ||
19 | <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> | 406 | <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> |
407 | + <color key="backgroundColor" systemColor="systemBackgroundColor"/> | ||
408 | + <constraints> | ||
409 | + <constraint firstAttribute="trailing" secondItem="XaT-fU-eNh" secondAttribute="trailing" id="8CQ-aq-Ezd"/> | ||
410 | + <constraint firstItem="XaT-fU-eNh" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" id="DIL-gG-nA2"/> | ||
411 | + <constraint firstAttribute="bottom" secondItem="XaT-fU-eNh" secondAttribute="bottom" id="XXc-AZ-i85"/> | ||
412 | + <constraint firstItem="XaT-fU-eNh" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="bpz-F0-O5d"/> | ||
413 | + </constraints> | ||
414 | + <point key="canvasLocation" x="12" y="-11"/> | ||
20 | </view> | 415 | </view> |
21 | </objects> | 416 | </objects> |
417 | + <resources> | ||
418 | + <systemColor name="systemBackgroundColor"> | ||
419 | + <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
420 | + </systemColor> | ||
421 | + </resources> | ||
22 | </document> | 422 | </document> | ... | ... |
-
Please register or login to post a comment