Manos Chorianopoulos

CouponVC expandables functionality

...@@ -56,6 +56,9 @@ import UIKit ...@@ -56,6 +56,9 @@ import UIKit
56 // Constraints for animation 56 // Constraints for animation
57 @IBOutlet weak var couponQRContentHeightConstraint: NSLayoutConstraint! 57 @IBOutlet weak var couponQRContentHeightConstraint: NSLayoutConstraint!
58 58
59 + @IBOutlet weak var termsButtonView: UIView!
60 + @IBOutlet weak var termsButtonTitleLabel: UILabel!
61 + @IBOutlet weak var termsButtonArrowImage: UIImageView!
59 @IBOutlet weak var termsButton: UIButton! 62 @IBOutlet weak var termsButton: UIButton!
60 @IBOutlet weak var termsLabel: UILabel! 63 @IBOutlet weak var termsLabel: UILabel!
61 @IBOutlet weak var termsLabelHeight: NSLayoutConstraint! 64 @IBOutlet weak var termsLabelHeight: NSLayoutConstraint!
...@@ -67,7 +70,7 @@ import UIKit ...@@ -67,7 +70,7 @@ import UIKit
67 var coupon: OfferModel? 70 var coupon: OfferModel?
68 private var isDetailsExpanded = false 71 private var isDetailsExpanded = false
69 private var isCouponCodeExpanded = false 72 private var isCouponCodeExpanded = false
70 - private var isCouponBarcodeExpanded = false 73 + private var isCouponQRExpanded = false
71 private var isTermsExpanded = false 74 private var isTermsExpanded = false
72 75
73 public override func viewDidLoad() { 76 public override func viewDidLoad() {
...@@ -89,6 +92,7 @@ import UIKit ...@@ -89,6 +92,7 @@ import UIKit
89 copyButtonImage.image = UIImage(named: "copy", in: MyEmptyClass.resourceBundle(), compatibleWith: nil) 92 copyButtonImage.image = UIImage(named: "copy", in: MyEmptyClass.resourceBundle(), compatibleWith: nil)
90 couponQRArrowImage.image = UIImage(named: "arrow_down", in: MyEmptyClass.resourceBundle(), compatibleWith: nil) 93 couponQRArrowImage.image = UIImage(named: "arrow_down", in: MyEmptyClass.resourceBundle(), compatibleWith: nil)
91 couponQRImage.image = UIImage(named: "barcode", in: MyEmptyClass.resourceBundle(), compatibleWith: nil) 94 couponQRImage.image = UIImage(named: "barcode", in: MyEmptyClass.resourceBundle(), compatibleWith: nil)
95 + termsButtonArrowImage.image = UIImage(named: "arrow_down", in: MyEmptyClass.resourceBundle(), compatibleWith: nil)
92 96
93 infoLabel.font = UIFont(name: "PingLCG-Regular", size: 13) 97 infoLabel.font = UIFont(name: "PingLCG-Regular", size: 13)
94 infoLabel.textColor = UIColor(rgb: 0x020E1C) 98 infoLabel.textColor = UIColor(rgb: 0x020E1C)
...@@ -99,22 +103,19 @@ import UIKit ...@@ -99,22 +103,19 @@ import UIKit
99 couponCodeContainerView.backgroundColor = UIColor(rgb: 0xFFFFFF) 103 couponCodeContainerView.backgroundColor = UIColor(rgb: 0xFFFFFF)
100 couponCodeContainerView.layer.cornerRadius = 8.0 104 couponCodeContainerView.layer.cornerRadius = 8.0
101 couponCodeContainerView.clipsToBounds = true 105 couponCodeContainerView.clipsToBounds = true
106 + couponCodeButton.addTarget(self, action: #selector(toggleCouponCode), for: .touchUpInside)
107 + couponCodeContentHeightConstraint.constant = 0
102 108
103 couponQRContainerView.backgroundColor = UIColor(rgb: 0xFFFFFF) 109 couponQRContainerView.backgroundColor = UIColor(rgb: 0xFFFFFF)
104 couponQRContainerView.layer.cornerRadius = 8.0 110 couponQRContainerView.layer.cornerRadius = 8.0
105 couponQRContainerView.clipsToBounds = true 111 couponQRContainerView.clipsToBounds = true
112 + couponQRButton.addTarget(self, action: #selector(toggleCouponQR), for: .touchUpInside)
113 + couponQRContentHeightConstraint.constant = 0
106 114
107 - termsButton.titleLabel?.font = UIFont(name: "PingLCG-Bold", size: 16) 115 + termsButtonTitleLabel.font = UIFont(name: "PingLCG-Bold", size: 16)
108 -// termsButton.imageView?.layer.transform = CATransform3DMakeScale(1.5, 1.5, 1.5) 116 + termsButtonTitleLabel.textColor = UIColor(rgb: 0x020E1C)
109 - termsButton.setTitle("Όροι Χρήσης", for: .normal) 117 + termsButtonTitleLabel.text = "Όροι Χρήσης"
110 - termsButton.setTitleColor(UIColor(rgb: 0x020E1C), for: .normal) 118 + termsButton.addTarget(self, action: #selector(toggleTerms), for: .touchUpInside)
111 - termsButton.setImage(UIImage(named: "arrow_down.png", in: MyEmptyClass.resourceBundle(), compatibleWith: nil), for: .normal)
112 - termsButton.semanticContentAttribute = .forceRightToLeft
113 - termsButton.tintColor = UIColor(red: 0.00, green: 0.00, blue: 0.00, alpha: 1.00)
114 - termsButton.imageEdgeInsets = UIEdgeInsets(top: 0, left: 5, bottom: 0, right: 0);
115 - termsButton.titleEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 5);
116 - termsButton.imageView?.layer.transform = CATransform3DMakeScale(0.8, 0.8, 0.8)
117 -
118 termsLabelHeight.constant = 0 119 termsLabelHeight.constant = 0
119 120
120 mapButton.titleLabel?.font = UIFont(name: "PingLCG-Bold", size: 16) 121 mapButton.titleLabel?.font = UIFont(name: "PingLCG-Bold", size: 16)
...@@ -180,12 +181,12 @@ import UIKit ...@@ -180,12 +181,12 @@ import UIKit
180 detailsLabel.textColor = UIColor(rgb: 0x020E1C) 181 detailsLabel.textColor = UIColor(rgb: 0x020E1C)
181 182
182 // Add tap gesture 183 // Add tap gesture
183 - let tapGesture = UITapGestureRecognizer(target: self, action: #selector(toggleDetailsExpansion)) 184 + let tapGesture = UITapGestureRecognizer(target: self, action: #selector(toggleDetails))
184 detailsLabel.isUserInteractionEnabled = true 185 detailsLabel.isUserInteractionEnabled = true
185 detailsLabel.addGestureRecognizer(tapGesture) 186 detailsLabel.addGestureRecognizer(tapGesture)
186 } 187 }
187 188
188 - @objc private func toggleDetailsExpansion() { 189 + @objc private func toggleDetails() {
189 isDetailsExpanded.toggle() 190 isDetailsExpanded.toggle()
190 191
191 UIView.animate(withDuration: 0.3) { 192 UIView.animate(withDuration: 0.3) {
...@@ -193,4 +194,34 @@ import UIKit ...@@ -193,4 +194,34 @@ import UIKit
193 self.view.layoutIfNeeded() 194 self.view.layoutIfNeeded()
194 } 195 }
195 } 196 }
197 +
198 + @objc private func toggleCouponCode() {
199 + isCouponCodeExpanded.toggle()
200 +
201 + UIView.animate(withDuration: 0.3) {
202 + self.couponCodeArrowImage.image = UIImage(named: self.isCouponCodeExpanded ? "arrow_up" : "arrow_down", in: MyEmptyClass.resourceBundle(), compatibleWith: nil)
203 + self.couponCodeContentHeightConstraint.constant = self.isCouponCodeExpanded ? self.couponCodeContentView.intrinsicContentSize.height : 0
204 + self.view.layoutIfNeeded()
205 + }
206 + }
207 +
208 + @objc private func toggleCouponQR() {
209 + isCouponQRExpanded.toggle()
210 +
211 + UIView.animate(withDuration: 0.3) {
212 + self.couponQRArrowImage.image = UIImage(named: self.isCouponQRExpanded ? "arrow_up" : "arrow_down", in: MyEmptyClass.resourceBundle(), compatibleWith: nil)
213 + self.couponQRContentHeightConstraint.constant = self.isCouponQRExpanded ? self.couponQRContentView.intrinsicContentSize.height : 0
214 + self.view.layoutIfNeeded()
215 + }
216 + }
217 +
218 + @objc private func toggleTerms() {
219 + isTermsExpanded.toggle()
220 +
221 + UIView.animate(withDuration: 0.3) {
222 + self.termsButtonArrowImage.image = UIImage(named: self.isTermsExpanded ? "arrow_up" : "arrow_down", in: MyEmptyClass.resourceBundle(), compatibleWith: nil)
223 + self.termsLabelHeight.constant = self.isTermsExpanded ? self.termsLabel.intrinsicContentSize.height : 0
224 + self.view.layoutIfNeeded()
225 + }
226 + }
196 } 227 }
......
...@@ -38,7 +38,10 @@ ...@@ -38,7 +38,10 @@
38 <outlet property="mapButton" destination="j1U-rV-0FP" id="K5C-V5-ejo"/> 38 <outlet property="mapButton" destination="j1U-rV-0FP" id="K5C-V5-ejo"/>
39 <outlet property="shareImage" destination="WjF-6P-8Wn" id="f7E-u8-Efc"/> 39 <outlet property="shareImage" destination="WjF-6P-8Wn" id="f7E-u8-Efc"/>
40 <outlet property="subtitleLabel" destination="VJr-Mc-WMf" id="D5i-m9-5pG"/> 40 <outlet property="subtitleLabel" destination="VJr-Mc-WMf" id="D5i-m9-5pG"/>
41 - <outlet property="termsButton" destination="Id4-Xw-01i" id="K7V-uP-07v"/> 41 + <outlet property="termsButton" destination="Id4-Xw-01i" id="rZ1-hr-bSI"/>
42 + <outlet property="termsButtonArrowImage" destination="C8k-TU-LiL" id="8mu-8b-a7K"/>
43 + <outlet property="termsButtonTitleLabel" destination="6Vj-gt-dKJ" id="hsv-5A-Sgk"/>
44 + <outlet property="termsButtonView" destination="HAh-BZ-4Ka" id="dVr-YX-Wmt"/>
42 <outlet property="termsLabel" destination="Ak8-Tc-k8X" id="lGl-Bm-k5q"/> 45 <outlet property="termsLabel" destination="Ak8-Tc-k8X" id="lGl-Bm-k5q"/>
43 <outlet property="termsLabelHeight" destination="ZA1-TX-m9Y" id="zDj-wU-mre"/> 46 <outlet property="termsLabelHeight" destination="ZA1-TX-m9Y" id="zDj-wU-mre"/>
44 <outlet property="titleLabel" destination="u54-xs-f5a" id="jG6-28-Q0R"/> 47 <outlet property="titleLabel" destination="u54-xs-f5a" id="jG6-28-Q0R"/>
...@@ -54,10 +57,10 @@ ...@@ -54,10 +57,10 @@
54 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="XaT-fU-eNh" userLabel="Main View"> 57 <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"/> 58 <rect key="frame" x="0.0" y="59" width="393" height="793"/>
56 <subviews> 59 <subviews>
57 - <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YpC-uS-mhw"> 60 + <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" ambiguous="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YpC-uS-mhw">
58 <rect key="frame" x="0.0" y="0.0" width="393" height="793"/> 61 <rect key="frame" x="0.0" y="0.0" width="393" height="793"/>
59 <subviews> 62 <subviews>
60 - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="qrm-40-JLT" userLabel="Scroll Content View"> 63 + <view contentMode="scaleToFill" ambiguous="YES" 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"/> 64 <rect key="frame" x="0.0" y="0.0" width="393" height="1225.6666666666667"/>
62 <subviews> 65 <subviews>
63 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Xiw-td-OMd" userLabel="Coupon Image View"> 66 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Xiw-td-OMd" userLabel="Coupon Image View">
...@@ -305,12 +308,47 @@ ...@@ -305,12 +308,47 @@
305 <constraint firstAttribute="bottom" secondItem="xqU-7k-Vxg" secondAttribute="bottom" id="wUN-aQ-c9t"/> 308 <constraint firstAttribute="bottom" secondItem="xqU-7k-Vxg" secondAttribute="bottom" id="wUN-aQ-c9t"/>
306 </constraints> 309 </constraints>
307 </view> 310 </view>
311 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="HAh-BZ-4Ka" userLabel="TermsButtonView">
312 + <rect key="frame" x="24" y="1349.3333333333333" width="75" height="35"/>
313 + <subviews>
314 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6Vj-gt-dKJ" userLabel="TermsButtonTitleLabel">
315 + <rect key="frame" x="0.0" y="5" width="53" height="25"/>
316 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
317 + <nil key="textColor"/>
318 + <nil key="highlightedColor"/>
319 + </label>
320 + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="C8k-TU-LiL" userLabel="TermsButtonArrowImage">
321 + <rect key="frame" x="61" y="15" width="9" height="5"/>
322 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
323 + <constraints>
324 + <constraint firstAttribute="height" constant="5" id="ERb-FD-j0Y"/>
325 + <constraint firstAttribute="width" constant="9" id="Sc1-QU-NCU"/>
326 + </constraints>
327 + </imageView>
308 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Id4-Xw-01i" userLabel="TermsButton"> 328 <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"/> 329 + <rect key="frame" x="0.0" y="0.0" width="75" height="35"/>
330 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
310 <state key="normal" title="Button"/> 331 <state key="normal" title="Button"/>
311 - <buttonConfiguration key="configuration" style="plain" title="Button"/> 332 + <buttonConfiguration key="configuration" style="plain" title="Button">
333 + <color key="baseForegroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
334 + </buttonConfiguration>
312 </button> 335 </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"> 336 + </subviews>
337 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
338 + <constraints>
339 + <constraint firstAttribute="trailing" secondItem="Id4-Xw-01i" secondAttribute="trailing" id="9yF-mL-I1z"/>
340 + <constraint firstItem="6Vj-gt-dKJ" firstAttribute="top" secondItem="HAh-BZ-4Ka" secondAttribute="top" constant="5" id="D14-g1-o0D"/>
341 + <constraint firstItem="6Vj-gt-dKJ" firstAttribute="leading" secondItem="HAh-BZ-4Ka" secondAttribute="leading" id="NXA-J1-wrD"/>
342 + <constraint firstItem="Id4-Xw-01i" firstAttribute="leading" secondItem="HAh-BZ-4Ka" secondAttribute="leading" id="VXd-Q2-8zj"/>
343 + <constraint firstAttribute="trailing" secondItem="C8k-TU-LiL" secondAttribute="trailing" constant="5" id="Yh6-uV-EBT"/>
344 + <constraint firstItem="C8k-TU-LiL" firstAttribute="centerY" secondItem="HAh-BZ-4Ka" secondAttribute="centerY" id="eps-sQ-Uah"/>
345 + <constraint firstAttribute="bottom" secondItem="6Vj-gt-dKJ" secondAttribute="bottom" constant="5" id="gRE-jP-z4y"/>
346 + <constraint firstItem="C8k-TU-LiL" firstAttribute="leading" secondItem="6Vj-gt-dKJ" secondAttribute="trailing" constant="8" id="had-S0-3Sm"/>
347 + <constraint firstItem="Id4-Xw-01i" firstAttribute="top" secondItem="HAh-BZ-4Ka" secondAttribute="top" id="htm-a2-Hbc"/>
348 + <constraint firstAttribute="bottom" secondItem="Id4-Xw-01i" secondAttribute="bottom" id="xfI-kZ-4H2"/>
349 + </constraints>
350 + </view>
351 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" ambiguous="YES" 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"/> 352 <rect key="frame" x="24" y="989.33333333333326" width="345" height="20.333333333333371"/>
315 <constraints> 353 <constraints>
316 <constraint firstAttribute="height" constant="20.329999999999998" id="ZA1-TX-m9Y"/> 354 <constraint firstAttribute="height" constant="20.329999999999998" id="ZA1-TX-m9Y"/>
...@@ -319,7 +357,7 @@ ...@@ -319,7 +357,7 @@
319 <nil key="textColor"/> 357 <nil key="textColor"/>
320 <nil key="highlightedColor"/> 358 <nil key="highlightedColor"/>
321 </label> 359 </label>
322 - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="j1U-rV-0FP" userLabel="MapButton"> 360 + <button opaque="NO" contentMode="scaleToFill" ambiguous="YES" 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"/> 361 <rect key="frame" x="24" y="1049.6666666666667" width="345" height="55"/>
324 <constraints> 362 <constraints>
325 <constraint firstAttribute="height" constant="55" id="BZv-RS-JfU"/> 363 <constraint firstAttribute="height" constant="55" id="BZv-RS-JfU"/>
...@@ -327,7 +365,7 @@ ...@@ -327,7 +365,7 @@
327 <state key="normal" title="Button"/> 365 <state key="normal" title="Button"/>
328 <buttonConfiguration key="configuration" style="plain" title="Button"/> 366 <buttonConfiguration key="configuration" style="plain" title="Button"/>
329 </button> 367 </button>
330 - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="t8z-s1-rIA" userLabel="WebsiteButton"> 368 + <button opaque="NO" contentMode="scaleToFill" ambiguous="YES" 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"/> 369 <rect key="frame" x="24" y="1124.6666666666667" width="345" height="55"/>
332 <constraints> 370 <constraints>
333 <constraint firstAttribute="height" constant="55" id="EUh-DN-fJh"/> 371 <constraint firstAttribute="height" constant="55" id="EUh-DN-fJh"/>
...@@ -342,7 +380,7 @@ ...@@ -342,7 +380,7 @@
342 <constraint firstItem="1Kx-s2-p1l" firstAttribute="leading" secondItem="u54-xs-f5a" secondAttribute="trailing" constant="11" id="22w-QH-w0I"/> 380 <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"/> 381 <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"/> 382 <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"/> 383 + <constraint firstItem="HAh-BZ-4Ka" firstAttribute="leading" secondItem="qrm-40-JLT" secondAttribute="leading" constant="24" id="3wX-re-5mu"/>
346 <constraint firstItem="WjF-6P-8Wn" firstAttribute="top" secondItem="Xiw-td-OMd" secondAttribute="bottom" constant="17" id="DTU-uH-exC"/> 384 <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"/> 385 <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"/> 386 <constraint firstAttribute="trailing" secondItem="t8z-s1-rIA" secondAttribute="trailing" constant="24" id="Hel-rG-nvJ"/>
...@@ -352,14 +390,12 @@ ...@@ -352,14 +390,12 @@
352 <constraint firstAttribute="trailing" secondItem="89U-JU-Imv" secondAttribute="trailing" constant="16" id="QJ1-AA-bn9"/> 390 <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"/> 391 <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"/> 392 <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"/> 393 + <constraint firstItem="HAh-BZ-4Ka" firstAttribute="top" secondItem="X7C-0H-IhU" secondAttribute="bottom" constant="1000" id="Su5-M8-vrC"/>
356 <constraint firstAttribute="trailing" secondItem="Xiw-td-OMd" secondAttribute="trailing" id="TGH-lz-pn5"/> 394 <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"/> 395 <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"/> 396 <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"/> 397 <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"/> 398 <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"/> 399 <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"/> 400 <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"/> 401 <constraint firstItem="X7C-0H-IhU" firstAttribute="leading" secondItem="qrm-40-JLT" secondAttribute="leading" constant="24" id="d5O-SJ-gva"/>
......