Showing
3 changed files
with
178 additions
and
56 deletions
| ... | @@ -8,6 +8,31 @@ | ... | @@ -8,6 +8,31 @@ |
| 8 | import UIKit | 8 | import UIKit |
| 9 | 9 | ||
| 10 | extension UIViewController { | 10 | extension UIViewController { |
| 11 | + func addFloatingBackButton(icon: String = "ic_back_3") { | ||
| 12 | + let button = UIButton(type: .custom) | ||
| 13 | + button.translatesAutoresizingMaskIntoConstraints = false | ||
| 14 | + button.backgroundColor = .white | ||
| 15 | + button.layer.cornerRadius = 20 | ||
| 16 | + button.layer.shadowColor = UIColor.black.cgColor | ||
| 17 | + button.layer.shadowOpacity = 0.1 | ||
| 18 | + button.layer.shadowOffset = CGSize(width: 0, height: 2) | ||
| 19 | + button.layer.shadowRadius = 4 | ||
| 20 | + | ||
| 21 | + if let img = UIImage(named: icon, in: Bundle.frameworkResourceBundle, compatibleWith: nil) { | ||
| 22 | + button.setImage(img, for: .normal) | ||
| 23 | + } | ||
| 24 | + | ||
| 25 | + button.addTarget(self, action: #selector(moveToBack(_:)), for: .touchUpInside) | ||
| 26 | + | ||
| 27 | + self.view.addSubview(button) | ||
| 28 | + NSLayoutConstraint.activate([ | ||
| 29 | + button.widthAnchor.constraint(equalToConstant: 40), | ||
| 30 | + button.heightAnchor.constraint(equalToConstant: 40), | ||
| 31 | + button.leadingAnchor.constraint(equalTo: self.view.leadingAnchor, constant: 16), | ||
| 32 | + button.topAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.topAnchor, constant: 16) | ||
| 33 | + ]) | ||
| 34 | + } | ||
| 35 | + | ||
| 11 | func setBackButton(_ icon:String = "ic_back_3") { | 36 | func setBackButton(_ icon:String = "ic_back_3") { |
| 12 | // let uiscreen: CGRect = UIScreen.main.bounds | 37 | // let uiscreen: CGRect = UIScreen.main.bounds |
| 13 | 38 | ||
| ... | @@ -247,6 +272,20 @@ extension UIView { | ... | @@ -247,6 +272,20 @@ extension UIView { |
| 247 | lineLayer.path = path | 272 | lineLayer.path = path |
| 248 | self.layer.addSublayer(lineLayer) | 273 | self.layer.addSublayer(lineLayer) |
| 249 | } | 274 | } |
| 275 | + | ||
| 276 | + func addDashedBorder(color: UIColor, lineWidth: CGFloat = 1, dash: CGFloat = 3, gap: CGFloat = 3) { | ||
| 277 | + // Remove any existing dashed border layer to avoid duplicates on re-layout | ||
| 278 | + layer.sublayers?.removeAll(where: { $0.name == "dashedBorderLayer" }) | ||
| 279 | + | ||
| 280 | + let shapeLayer = CAShapeLayer() | ||
| 281 | + shapeLayer.name = "dashedBorderLayer" | ||
| 282 | + shapeLayer.strokeColor = color.cgColor | ||
| 283 | + shapeLayer.fillColor = UIColor.clear.cgColor | ||
| 284 | + shapeLayer.lineWidth = lineWidth | ||
| 285 | + shapeLayer.lineDashPattern = [dash as NSNumber, gap as NSNumber] | ||
| 286 | + shapeLayer.path = UIBezierPath(rect: bounds).cgPath | ||
| 287 | + layer.addSublayer(shapeLayer) | ||
| 288 | + } | ||
| 250 | } | 289 | } |
| 251 | 290 | ||
| 252 | extension UIImageView { | 291 | extension UIImageView { | ... | ... |
| ... | @@ -30,8 +30,10 @@ import UIKit | ... | @@ -30,8 +30,10 @@ import UIKit |
| 30 | @IBOutlet weak var favoriteImage: UIImageView! | 30 | @IBOutlet weak var favoriteImage: UIImageView! |
| 31 | @IBOutlet weak var shareImage: UIImageView! | 31 | @IBOutlet weak var shareImage: UIImageView! |
| 32 | 32 | ||
| 33 | + @IBOutlet weak var merchantNameLabel: UILabel! | ||
| 33 | @IBOutlet weak var titleLabel: UILabel! | 34 | @IBOutlet weak var titleLabel: UILabel! |
| 34 | @IBOutlet weak var subtitleLabel: UILabel! | 35 | @IBOutlet weak var subtitleLabel: UILabel! |
| 36 | + @IBOutlet weak var expirationView: UIView! | ||
| 35 | @IBOutlet weak var expirationLabel: UILabel! | 37 | @IBOutlet weak var expirationLabel: UILabel! |
| 36 | @IBOutlet weak var detailsLabel: UILabel! | 38 | @IBOutlet weak var detailsLabel: UILabel! |
| 37 | 39 | ||
| ... | @@ -75,9 +77,19 @@ import UIKit | ... | @@ -75,9 +77,19 @@ import UIKit |
| 75 | super.viewDidLoad() | 77 | super.viewDidLoad() |
| 76 | 78 | ||
| 77 | // Show navigation bar for this screen (with back button) | 79 | // Show navigation bar for this screen (with back button) |
| 78 | - self.navigationController?.setNavigationBarHidden(false, animated: false) | 80 | + // self.navigationController?.setNavigationBarHidden(false, animated: false) |
| 79 | - setBackButton() | 81 | + // setBackButton() |
| 80 | - setNavigationTitle("Προσφορά") | 82 | + // setNavigationTitle("Προσφορά") |
| 83 | + | ||
| 84 | + self.navigationController?.setNavigationBarHidden(true, animated: false) | ||
| 85 | + addFloatingBackButton() | ||
| 86 | + | ||
| 87 | + for label in [merchantNameLabel, titleLabel, subtitleLabel, expirationLabel, detailsLabel] { | ||
| 88 | + label?.setContentHuggingPriority(.defaultHigh, for: .vertical) | ||
| 89 | + } | ||
| 90 | + | ||
| 91 | + | ||
| 92 | + couponImage.backgroundColor = UIColor(rgb: 0x00A3E033) | ||
| 81 | 93 | ||
| 82 | infoView.backgroundColor = UIColor(rgb: 0xFFFFFF) | 94 | infoView.backgroundColor = UIColor(rgb: 0xFFFFFF) |
| 83 | infoView.layer.cornerRadius = 10.0 | 95 | infoView.layer.cornerRadius = 10.0 |
| ... | @@ -92,18 +104,26 @@ import UIKit | ... | @@ -92,18 +104,26 @@ import UIKit |
| 92 | infoLabel.textColor = UIColor(rgb: 0x020E1C) | 104 | infoLabel.textColor = UIColor(rgb: 0x020E1C) |
| 93 | infoLabel.text = "Περισσότερα" | 105 | infoLabel.text = "Περισσότερα" |
| 94 | 106 | ||
| 95 | - termsButtonTitleLabel.font = UIFont(name: "PingLCG-Bold", size: 16) | 107 | + expirationView.backgroundColor = UIColor(rgb: 0xDDEFFB) |
| 96 | - termsButtonTitleLabel.textColor = UIColor(rgb: 0x020E1C) | 108 | + expirationView.layer.cornerRadius = 6.0 |
| 97 | - termsButtonTitleLabel.text = "Όροι Χρήσης" | 109 | + expirationView.layer.borderWidth = 1.0 |
| 110 | + expirationView.layer.borderColor = UIColor(rgb: 0xCCE9FB).cgColor | ||
| 111 | + | ||
| 112 | + termsButtonTitleLabel.font = UIFont(name: "PingLCG-Bold", size: 15) | ||
| 113 | + termsButtonTitleLabel.textColor = UIColor(rgb: 0x5C6369) | ||
| 114 | + // termsButtonTitleLabel.text = "Όροι Χρήσης" | ||
| 115 | + termsButtonTitleLabel.text = "Offer terms of use" | ||
| 98 | termsButton.addTarget(self, action: #selector(toggleTerms), for: .touchUpInside) | 116 | termsButton.addTarget(self, action: #selector(toggleTerms), for: .touchUpInside) |
| 99 | termsLabelHeight.constant = 0 | 117 | termsLabelHeight.constant = 0 |
| 100 | 118 | ||
| 101 | - redeemButton.titleLabel?.font = UIFont(name: "PingLCG-Bold", size: 16) | 119 | + redeemButton.titleLabel?.font = UIFont(name: "PingLCG-Regular", size: 16) |
| 102 | - redeemButton.setTitle("Απόκτησε το κουπόνι", for: .normal) | 120 | + // redeemButton.setTitle("Απόκτησε το κουπόνι", for: .normal) |
| 121 | + redeemButton.setTitle("Get coupon", for: .normal) | ||
| 103 | redeemButton.setTitleColor(UIColor(rgb: 0xFFFFFF), for: .normal) | 122 | redeemButton.setTitleColor(UIColor(rgb: 0xFFFFFF), for: .normal) |
| 104 | redeemButton.setTitleColor(UIColor(rgb: 0xFFFFFF), for: .highlighted) | 123 | redeemButton.setTitleColor(UIColor(rgb: 0xFFFFFF), for: .highlighted) |
| 105 | - redeemButton.layer.cornerRadius = 4.0 | 124 | + redeemButton.layer.cornerRadius = redeemButton.bounds.height / 2 |
| 106 | - redeemButton.backgroundColor = UIColor(rgb: 0x000F1E) | 125 | + // redeemButton.backgroundColor = UIColor(rgb: 0x000F1E) |
| 126 | + redeemButton.backgroundColor = UIColor(rgb: 0x00A3E0) | ||
| 107 | redeemButton.addTarget(self, action: #selector(redeemButtonTapped), for: .touchUpInside) | 127 | redeemButton.addTarget(self, action: #selector(redeemButtonTapped), for: .touchUpInside) |
| 108 | 128 | ||
| 109 | // Configure the view with offer data | 129 | // Configure the view with offer data |
| ... | @@ -112,6 +132,28 @@ import UIKit | ... | @@ -112,6 +132,28 @@ import UIKit |
| 112 | } | 132 | } |
| 113 | } | 133 | } |
| 114 | 134 | ||
| 135 | + public override func viewDidLayoutSubviews() { | ||
| 136 | + super.viewDidLayoutSubviews() | ||
| 137 | + redeemButton.layer.cornerRadius = redeemButton.bounds.height / 2 | ||
| 138 | + | ||
| 139 | + couponImage.addDashedBorder( | ||
| 140 | + color: UIColor(rgb: 0x00A3E033), | ||
| 141 | + lineWidth: 1, | ||
| 142 | + dash: 3, | ||
| 143 | + gap: 3 | ||
| 144 | + ) | ||
| 145 | + } | ||
| 146 | + | ||
| 147 | + public override func viewWillAppear(_ animated: Bool) { | ||
| 148 | + super.viewWillAppear(animated) | ||
| 149 | + self.navigationController?.setNavigationBarHidden(true, animated: animated) | ||
| 150 | + } | ||
| 151 | + | ||
| 152 | + public override func viewWillDisappear(_ animated: Bool) { | ||
| 153 | + super.viewWillDisappear(animated) | ||
| 154 | + self.navigationController?.setNavigationBarHidden(false, animated: animated) | ||
| 155 | + } | ||
| 156 | + | ||
| 115 | @objc private func redeemButtonTapped() { | 157 | @objc private func redeemButtonTapped() { |
| 116 | guard let couponSetUuid = couponset?._uuid, !couponSetUuid.isEmpty else { | 158 | guard let couponSetUuid = couponset?._uuid, !couponSetUuid.isEmpty else { |
| 117 | showErrorAlert(message: "Δεν βρέθηκε το αναγνωριστικό της προσφοράς.") | 159 | showErrorAlert(message: "Δεν βρέθηκε το αναγνωριστικό της προσφοράς.") |
| ... | @@ -216,23 +258,28 @@ import UIKit | ... | @@ -216,23 +258,28 @@ import UIKit |
| 216 | // Default to not favorite for coupon sets | 258 | // Default to not favorite for coupon sets |
| 217 | favoriteImage.image = UIImage(named: "favorite2_empty", in: Bundle.frameworkResourceBundle, compatibleWith: nil) | 259 | favoriteImage.image = UIImage(named: "favorite2_empty", in: Bundle.frameworkResourceBundle, compatibleWith: nil) |
| 218 | 260 | ||
| 261 | + merchantNameLabel.font = UIFont(name: "PingLCG-Bold", size: 15) | ||
| 262 | + merchantNameLabel.textColor = UIColor(rgb: 0x9BA1A6) | ||
| 263 | + merchantNameLabel.text = couponset._merchant?._name | ||
| 264 | + | ||
| 219 | titleLabel.font = UIFont(name: "PingLCG-Bold", size: 24) | 265 | titleLabel.font = UIFont(name: "PingLCG-Bold", size: 24) |
| 220 | - titleLabel.textColor = UIColor(rgb: 0xF2709D) | 266 | + titleLabel.textColor = UIColor(rgb: 0x000F1E) |
| 221 | titleLabel.text = couponset._name | 267 | titleLabel.text = couponset._name |
| 222 | 268 | ||
| 223 | subtitleLabel.font = UIFont(name: "PingLCG-Regular", size: 18) | 269 | subtitleLabel.font = UIFont(name: "PingLCG-Regular", size: 18) |
| 224 | - subtitleLabel.textColor = UIColor(rgb: 0x020E1C) | 270 | + subtitleLabel.textColor = UIColor(rgb: 0x000F1E) |
| 225 | subtitleLabel.text = couponset._short_description | 271 | subtitleLabel.text = couponset._short_description |
| 226 | 272 | ||
| 227 | - expirationLabel.font = UIFont(name: "PingLCG-Regular", size: 14) | 273 | + expirationLabel.font = UIFont(name: "PingLCG-Bold", size: 13) |
| 228 | - expirationLabel.textColor = UIColor(rgb: 0x020E1C) | 274 | + expirationLabel.textColor = UIColor(rgb: 0x002430) |
| 229 | - expirationLabel.text = ("Η προσφορά ισχύει έως " + couponset.formattedEndDate(format: "dd-MM-yyyy")) | 275 | + expirationLabel.text = ("Valid until " + couponset.formattedEndDate(format: "MMMM d, yyyy")) |
| 276 | +// expirationLabel.text = ("Η προσφορά ισχύει έως " + couponset.formattedEndDate(format: "dd-MM-yyyy")) | ||
| 230 | // expirationLabel.text = "Η προσφορά ισχύει έως 30-09-2025" | 277 | // expirationLabel.text = "Η προσφορά ισχύει έως 30-09-2025" |
| 231 | 278 | ||
| 232 | setupExpandableDetails() | 279 | setupExpandableDetails() |
| 233 | 280 | ||
| 234 | - termsLabel.font = UIFont(name: "PingLCG-Regular", size: 16) | 281 | + termsLabel.font = UIFont(name: "PingLCG-Regular", size: 15) |
| 235 | - termsLabel.textColor = UIColor(rgb: 0x020E1C) | 282 | + termsLabel.textColor = UIColor(rgb: 0x5C6369) |
| 236 | // 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." | 283 | // 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." |
| 237 | termsLabel.text = couponset._terms | 284 | termsLabel.text = couponset._terms |
| 238 | } | 285 | } |
| ... | @@ -244,8 +291,8 @@ import UIKit | ... | @@ -244,8 +291,8 @@ import UIKit |
| 244 | // fullDetailsText = "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." | 291 | // fullDetailsText = "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." |
| 245 | fullDetailsText = couponset?._description ?? "" | 292 | fullDetailsText = couponset?._description ?? "" |
| 246 | 293 | ||
| 247 | - detailsLabel.font = UIFont(name: "PingLCG-Regular", size: 18) | 294 | + detailsLabel.font = UIFont(name: "PingLCG-Regular", size: 16) |
| 248 | - detailsLabel.textColor = UIColor(rgb: 0x020E1C) | 295 | + detailsLabel.textColor = UIColor(rgb: 0x5C6369) |
| 249 | 296 | ||
| 250 | updateDetailsText() | 297 | updateDetailsText() |
| 251 | 298 | ||
| ... | @@ -258,8 +305,11 @@ import UIKit | ... | @@ -258,8 +305,11 @@ import UIKit |
| 258 | if isDetailsExpanded { | 305 | if isDetailsExpanded { |
| 259 | // Show full text with "Λιγότερα" | 306 | // Show full text with "Λιγότερα" |
| 260 | if (shouldTruncaitDetails) { | 307 | if (shouldTruncaitDetails) { |
| 261 | - let fullTextWithLess = fullDetailsText + " Λιγότερα" | 308 | +// let fullTextWithLess = fullDetailsText + " Λιγότερα" |
| 262 | - let attributedString = createAttributedString(text: fullTextWithLess, linkText: "Λιγότερα") | 309 | +// let attributedString = createAttributedString(text: fullTextWithLess, linkText: "Λιγότερα") |
| 310 | + | ||
| 311 | + let fullTextWithLess = fullDetailsText + " View less" | ||
| 312 | + let attributedString = createAttributedString(text: fullTextWithLess, linkText: "View less") | ||
| 263 | detailsLabel.attributedText = attributedString | 313 | detailsLabel.attributedText = attributedString |
| 264 | } else { | 314 | } else { |
| 265 | detailsLabel.text = fullDetailsText | 315 | detailsLabel.text = fullDetailsText |
| ... | @@ -267,8 +317,10 @@ import UIKit | ... | @@ -267,8 +317,10 @@ import UIKit |
| 267 | detailsLabel.numberOfLines = 0 | 317 | detailsLabel.numberOfLines = 0 |
| 268 | } else { | 318 | } else { |
| 269 | // Calculate approximate characters for 4 lines and truncate if needed | 319 | // Calculate approximate characters for 4 lines and truncate if needed |
| 320 | +// let truncatedText = getTruncatedTextForFourLines() | ||
| 321 | +// let attributedString = createAttributedString(text: truncatedText, linkText: "Περισσότερα") | ||
| 270 | let truncatedText = getTruncatedTextForFourLines() | 322 | let truncatedText = getTruncatedTextForFourLines() |
| 271 | - let attributedString = createAttributedString(text: truncatedText, linkText: "Περισσότερα") | 323 | + let attributedString = createAttributedString(text: truncatedText, linkText: "View more") |
| 272 | detailsLabel.attributedText = attributedString | 324 | detailsLabel.attributedText = attributedString |
| 273 | detailsLabel.numberOfLines = 4 | 325 | detailsLabel.numberOfLines = 4 |
| 274 | } | 326 | } |
| ... | @@ -282,7 +334,8 @@ import UIKit | ... | @@ -282,7 +334,8 @@ import UIKit |
| 282 | let charactersPerLine = Int(labelWidth / averageCharWidth) | 334 | let charactersPerLine = Int(labelWidth / averageCharWidth) |
| 283 | let maxCharactersFor4Lines = charactersPerLine * 4 | 335 | let maxCharactersFor4Lines = charactersPerLine * 4 |
| 284 | 336 | ||
| 285 | - let moreText = " Περισσότερα" | 337 | +// let moreText = " Περισσότερα" |
| 338 | + let moreText = " View more" | ||
| 286 | let ellipsis = "..." | 339 | let ellipsis = "..." |
| 287 | let reservedCharacters = ellipsis.count + moreText.count + 15 | 340 | let reservedCharacters = ellipsis.count + moreText.count + 15 |
| 288 | 341 | ||
| ... | @@ -307,14 +360,14 @@ import UIKit | ... | @@ -307,14 +360,14 @@ import UIKit |
| 307 | 360 | ||
| 308 | // Regular text attributes | 361 | // Regular text attributes |
| 309 | let regularAttributes: [NSAttributedString.Key: Any] = [ | 362 | let regularAttributes: [NSAttributedString.Key: Any] = [ |
| 310 | - .font: UIFont(name: "PingLCG-Regular", size: 18) ?? UIFont.systemFont(ofSize: 18), | 363 | + .font: UIFont(name: "PingLCG-Regular", size: 16) ?? UIFont.systemFont(ofSize: 16), |
| 311 | - .foregroundColor: UIColor(rgb: 0x020E1C) | 364 | + .foregroundColor: UIColor(rgb: 0x5C6369) |
| 312 | ] | 365 | ] |
| 313 | 366 | ||
| 314 | // Link text attributes (blue color) | 367 | // Link text attributes (blue color) |
| 315 | let linkAttributes: [NSAttributedString.Key: Any] = [ | 368 | let linkAttributes: [NSAttributedString.Key: Any] = [ |
| 316 | - .font: UIFont(name: "PingLCG-Regular", size: 18) ?? UIFont.systemFont(ofSize: 18), | 369 | + .font: UIFont(name: "PingLCG-Bold", size: 16) ?? UIFont.systemFont(ofSize: 16), |
| 317 | - .foregroundColor: UIColor(rgb: 0x00A8E8) // Blue color | 370 | + .foregroundColor: UIColor(rgb: 0x1D2023) // Blue color |
| 318 | ] | 371 | ] |
| 319 | 372 | ||
| 320 | // Apply regular attributes to entire text | 373 | // Apply regular attributes to entire text | ... | ... |
| ... | @@ -13,10 +13,12 @@ | ... | @@ -13,10 +13,12 @@ |
| 13 | <outlet property="couponImage" destination="50f-Uw-WmD" id="yxn-pQ-nCT"/> | 13 | <outlet property="couponImage" destination="50f-Uw-WmD" id="yxn-pQ-nCT"/> |
| 14 | <outlet property="detailsLabel" destination="tOt-gP-Et5" id="H2V-Uq-Dsj"/> | 14 | <outlet property="detailsLabel" destination="tOt-gP-Et5" id="H2V-Uq-Dsj"/> |
| 15 | <outlet property="expirationLabel" destination="PZ8-Go-A85" id="hXE-lo-i0w"/> | 15 | <outlet property="expirationLabel" destination="PZ8-Go-A85" id="hXE-lo-i0w"/> |
| 16 | + <outlet property="expirationView" destination="Haz-Ae-VkM" id="OMt-Fr-BW4"/> | ||
| 16 | <outlet property="favoriteImage" destination="kQb-LM-Zaa" id="75J-Ez-RZx"/> | 17 | <outlet property="favoriteImage" destination="kQb-LM-Zaa" id="75J-Ez-RZx"/> |
| 17 | <outlet property="infoImage" destination="RK8-R9-SZK" id="ZjM-PX-DgT"/> | 18 | <outlet property="infoImage" destination="RK8-R9-SZK" id="ZjM-PX-DgT"/> |
| 18 | <outlet property="infoLabel" destination="oln-Zl-Mu1" id="OZb-dV-dlF"/> | 19 | <outlet property="infoLabel" destination="oln-Zl-Mu1" id="OZb-dV-dlF"/> |
| 19 | <outlet property="infoView" destination="raJ-sJ-NGX" id="fol-KV-D65"/> | 20 | <outlet property="infoView" destination="raJ-sJ-NGX" id="fol-KV-D65"/> |
| 21 | + <outlet property="merchantNameLabel" destination="S6F-Nw-LLu" id="fCY-8O-usr"/> | ||
| 20 | <outlet property="redeemButton" destination="bTa-jT-Ufb" id="zz9-GB-5CD"/> | 22 | <outlet property="redeemButton" destination="bTa-jT-Ufb" id="zz9-GB-5CD"/> |
| 21 | <outlet property="shareImage" destination="a1t-wH-dMg" id="Viw-KD-1JB"/> | 23 | <outlet property="shareImage" destination="a1t-wH-dMg" id="Viw-KD-1JB"/> |
| 22 | <outlet property="subtitleLabel" destination="iWC-mi-WKw" id="peM-oa-eSS"/> | 24 | <outlet property="subtitleLabel" destination="iWC-mi-WKw" id="peM-oa-eSS"/> |
| ... | @@ -78,8 +80,8 @@ | ... | @@ -78,8 +80,8 @@ |
| 78 | <constraint firstItem="oln-Zl-Mu1" firstAttribute="leading" secondItem="RK8-R9-SZK" secondAttribute="trailing" constant="4.5" id="uSA-Gk-Fws"/> | 80 | <constraint firstItem="oln-Zl-Mu1" firstAttribute="leading" secondItem="RK8-R9-SZK" secondAttribute="trailing" constant="4.5" id="uSA-Gk-Fws"/> |
| 79 | </constraints> | 81 | </constraints> |
| 80 | </view> | 82 | </view> |
| 81 | - <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="aSO-pm-a0W" userLabel="Title Label"> | 83 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="S6F-Nw-LLu" userLabel="Merchant Name Label"> |
| 82 | - <rect key="frame" x="24" y="234" width="249" height="20.333333333333343"/> | 84 | + <rect key="frame" x="24" y="235" width="345" height="20.333333333333343"/> |
| 83 | <fontDescription key="fontDescription" type="system" pointSize="17"/> | 85 | <fontDescription key="fontDescription" type="system" pointSize="17"/> |
| 84 | <nil key="textColor"/> | 86 | <nil key="textColor"/> |
| 85 | <nil key="highlightedColor"/> | 87 | <nil key="highlightedColor"/> |
| ... | @@ -100,26 +102,52 @@ | ... | @@ -100,26 +102,52 @@ |
| 100 | <constraint firstAttribute="height" constant="40" id="Woz-Er-jU5"/> | 102 | <constraint firstAttribute="height" constant="40" id="Woz-Er-jU5"/> |
| 101 | </constraints> | 103 | </constraints> |
| 102 | </imageView> | 104 | </imageView> |
| 103 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" ambiguous="YES" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="iWC-mi-WKw" userLabel="Subtitle Label"> | 105 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="aSO-pm-a0W" userLabel="Title Label"> |
| 104 | - <rect key="frame" x="24" y="254.33333333333334" width="345" height="20.333333333333286"/> | 106 | + <rect key="frame" x="24" y="274.33333333333331" width="345" height="20.333333333333314"/> |
| 105 | <fontDescription key="fontDescription" type="system" pointSize="17"/> | 107 | <fontDescription key="fontDescription" type="system" pointSize="17"/> |
| 106 | <nil key="textColor"/> | 108 | <nil key="textColor"/> |
| 107 | <nil key="highlightedColor"/> | 109 | <nil key="highlightedColor"/> |
| 108 | </label> | 110 | </label> |
| 109 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" ambiguous="YES" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PZ8-Go-A85" userLabel="Expiration Label"> | 111 | + <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="iWC-mi-WKw" userLabel="Subtitle Label"> |
| 110 | - <rect key="frame" x="24" y="288.66666666666674" width="345" height="20.333333333333314"/> | 112 | + <rect key="frame" x="24" y="304.66666666666669" width="345" height="20.333333333333314"/> |
| 111 | <fontDescription key="fontDescription" type="system" pointSize="17"/> | 113 | <fontDescription key="fontDescription" type="system" pointSize="17"/> |
| 112 | <nil key="textColor"/> | 114 | <nil key="textColor"/> |
| 113 | <nil key="highlightedColor"/> | 115 | <nil key="highlightedColor"/> |
| 114 | </label> | 116 | </label> |
| 115 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" ambiguous="YES" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tOt-gP-Et5" userLabel="Details Label"> | 117 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Haz-Ae-VkM" userLabel="Expiration View"> |
| 116 | - <rect key="frame" x="24" y="329" width="345" height="20.333333333333314"/> | 118 | + <rect key="frame" x="24.000000000000004" y="347" width="55.333333333333343" height="34.333333333333314"/> |
| 119 | + <subviews> | ||
| 120 | + <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="PZ8-Go-A85" userLabel="Expiration Label"> | ||
| 121 | + <rect key="frame" x="7" y="6.9999999999999982" width="41.333333333333336" height="20.333333333333329"/> | ||
| 117 | <fontDescription key="fontDescription" type="system" pointSize="17"/> | 122 | <fontDescription key="fontDescription" type="system" pointSize="17"/> |
| 118 | <nil key="textColor"/> | 123 | <nil key="textColor"/> |
| 119 | <nil key="highlightedColor"/> | 124 | <nil key="highlightedColor"/> |
| 120 | </label> | 125 | </label> |
| 126 | + </subviews> | ||
| 127 | + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
| 128 | + <constraints> | ||
| 129 | + <constraint firstItem="PZ8-Go-A85" firstAttribute="leading" secondItem="Haz-Ae-VkM" secondAttribute="leading" constant="7" id="GHg-uf-y2A"/> | ||
| 130 | + <constraint firstAttribute="bottom" secondItem="PZ8-Go-A85" secondAttribute="bottom" constant="7" id="lzh-zn-eSc"/> | ||
| 131 | + <constraint firstAttribute="trailing" secondItem="PZ8-Go-A85" secondAttribute="trailing" constant="7" id="mOL-XE-ayp"/> | ||
| 132 | + <constraint firstItem="PZ8-Go-A85" firstAttribute="top" secondItem="Haz-Ae-VkM" secondAttribute="top" constant="7" id="u2c-QD-K7q"/> | ||
| 133 | + </constraints> | ||
| 134 | + </view> | ||
| 135 | + <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="tOt-gP-Et5" userLabel="Details Label"> | ||
| 136 | + <rect key="frame" x="24" y="418.33333333333337" width="345" height="20.333333333333314"/> | ||
| 137 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 138 | + <nil key="textColor"/> | ||
| 139 | + <nil key="highlightedColor"/> | ||
| 140 | + </label> | ||
| 141 | + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bTa-jT-Ufb" userLabel="RedeemButton"> | ||
| 142 | + <rect key="frame" x="24" y="541.66666666666663" width="345" height="55"/> | ||
| 143 | + <constraints> | ||
| 144 | + <constraint firstAttribute="height" constant="55" id="5AV-zY-O6v"/> | ||
| 145 | + </constraints> | ||
| 146 | + <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> | ||
| 147 | + <state key="normal" title="Button"/> | ||
| 148 | + </button> | ||
| 121 | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="12M-YC-Cox" userLabel="TermsButtonView"> | 149 | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="12M-YC-Cox" userLabel="TermsButtonView"> |
| 122 | - <rect key="frame" x="23.999999999999993" y="527.66666666666663" width="123.33333333333331" height="35"/> | 150 | + <rect key="frame" x="135" y="628.66666666666663" width="123.33333333333331" height="35"/> |
| 123 | <subviews> | 151 | <subviews> |
| 124 | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Όροι Χρήσης" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="uSf-AS-iFa" userLabel="TermsButtonTitleLabel"> | 152 | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Όροι Χρήσης" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="uSf-AS-iFa" userLabel="TermsButtonTitleLabel"> |
| 125 | <rect key="frame" x="0.0" y="5" width="101.33333333333333" height="25"/> | 153 | <rect key="frame" x="0.0" y="5" width="101.33333333333333" height="25"/> |
| ... | @@ -159,7 +187,7 @@ | ... | @@ -159,7 +187,7 @@ |
| 159 | </constraints> | 187 | </constraints> |
| 160 | </view> | 188 | </view> |
| 161 | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="jug-xV-lmv" userLabel="TermsLabel"> | 189 | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="jug-xV-lmv" userLabel="TermsLabel"> |
| 162 | - <rect key="frame" x="24" y="572.66666666666663" width="345" height="20.333333333333371"/> | 190 | + <rect key="frame" x="24" y="673.66666666666663" width="345" height="20.333333333333371"/> |
| 163 | <constraints> | 191 | <constraints> |
| 164 | <constraint firstAttribute="height" constant="20.329999999999998" id="9VB-9j-Q79"/> | 192 | <constraint firstAttribute="height" constant="20.329999999999998" id="9VB-9j-Q79"/> |
| 165 | </constraints> | 193 | </constraints> |
| ... | @@ -167,48 +195,49 @@ | ... | @@ -167,48 +195,49 @@ |
| 167 | <nil key="textColor"/> | 195 | <nil key="textColor"/> |
| 168 | <nil key="highlightedColor"/> | 196 | <nil key="highlightedColor"/> |
| 169 | </label> | 197 | </label> |
| 170 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bTa-jT-Ufb" userLabel="RedeemButton"> | ||
| 171 | - <rect key="frame" x="24" y="633" width="345" height="55"/> | ||
| 172 | - <constraints> | ||
| 173 | - <constraint firstAttribute="height" constant="55" id="5AV-zY-O6v"/> | ||
| 174 | - </constraints> | ||
| 175 | - <state key="normal" title="Button"/> | ||
| 176 | - <buttonConfiguration key="configuration" style="plain" title="Button"/> | ||
| 177 | - </button> | ||
| 178 | </subviews> | 198 | </subviews> |
| 179 | <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | 199 | <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| 180 | <constraints> | 200 | <constraints> |
| 181 | - <constraint firstAttribute="trailing" secondItem="PZ8-Go-A85" secondAttribute="trailing" constant="24" id="0BS-5a-p2w"/> | 201 | + <constraint firstItem="S6F-Nw-LLu" firstAttribute="top" secondItem="50f-Uw-WmD" secondAttribute="bottom" constant="24" id="0hI-ba-ISV"/> |
| 182 | <constraint firstAttribute="trailing" secondItem="raJ-sJ-NGX" secondAttribute="trailing" constant="16" id="3pn-zS-erd"/> | 202 | <constraint firstAttribute="trailing" secondItem="raJ-sJ-NGX" secondAttribute="trailing" constant="16" id="3pn-zS-erd"/> |
| 183 | <constraint firstAttribute="trailing" secondItem="50f-Uw-WmD" secondAttribute="trailing" id="5vF-D2-mBO"/> | 203 | <constraint firstAttribute="trailing" secondItem="50f-Uw-WmD" secondAttribute="trailing" id="5vF-D2-mBO"/> |
| 184 | - <constraint firstItem="12M-YC-Cox" firstAttribute="top" secondItem="tOt-gP-Et5" secondAttribute="bottom" constant="50" id="6cC-FH-1Xw"/> | 204 | + <constraint firstItem="12M-YC-Cox" firstAttribute="top" secondItem="bTa-jT-Ufb" secondAttribute="bottom" constant="32" id="6cC-FH-1Xw"/> |
| 185 | <constraint firstItem="50f-Uw-WmD" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" id="7Rd-U6-d9j"/> | 205 | <constraint firstItem="50f-Uw-WmD" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" id="7Rd-U6-d9j"/> |
| 206 | + <constraint firstItem="Haz-Ae-VkM" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" constant="24" id="Aks-Ge-qWd"/> | ||
| 186 | <constraint firstItem="aSO-pm-a0W" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" constant="24" id="BIn-gA-oSw"/> | 207 | <constraint firstItem="aSO-pm-a0W" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" constant="24" id="BIn-gA-oSw"/> |
| 187 | <constraint firstItem="a1t-wH-dMg" firstAttribute="leading" secondItem="kQb-LM-Zaa" secondAttribute="trailing" constant="11" id="DlZ-NN-vE2"/> | 208 | <constraint firstItem="a1t-wH-dMg" firstAttribute="leading" secondItem="kQb-LM-Zaa" secondAttribute="trailing" constant="11" id="DlZ-NN-vE2"/> |
| 188 | - <constraint firstItem="12M-YC-Cox" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" constant="24" id="Eal-pm-W9t"/> | ||
| 189 | - <constraint firstItem="PZ8-Go-A85" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" constant="24" id="Fgh-6n-hpZ"/> | ||
| 190 | <constraint firstAttribute="trailing" secondItem="a1t-wH-dMg" secondAttribute="trailing" constant="18" id="H8F-yd-t0Z"/> | 209 | <constraint firstAttribute="trailing" secondItem="a1t-wH-dMg" secondAttribute="trailing" constant="18" id="H8F-yd-t0Z"/> |
| 191 | <constraint firstAttribute="trailing" secondItem="iWC-mi-WKw" secondAttribute="trailing" constant="24" id="HII-Zz-ySA"/> | 210 | <constraint firstAttribute="trailing" secondItem="iWC-mi-WKw" secondAttribute="trailing" constant="24" id="HII-Zz-ySA"/> |
| 192 | - <constraint firstItem="iWC-mi-WKw" firstAttribute="top" secondItem="aSO-pm-a0W" secondAttribute="bottom" id="HZs-3D-vZV"/> | 211 | + <constraint firstItem="iWC-mi-WKw" firstAttribute="top" secondItem="aSO-pm-a0W" secondAttribute="bottom" constant="10" id="HZs-3D-vZV"/> |
| 193 | - <constraint firstItem="kQb-LM-Zaa" firstAttribute="leading" secondItem="aSO-pm-a0W" secondAttribute="trailing" constant="11" id="MAX-rt-Ne3"/> | 212 | + <constraint firstItem="12M-YC-Cox" firstAttribute="centerX" secondItem="mci-HQ-9iu" secondAttribute="centerX" id="Je8-Mw-E6T"/> |
| 194 | - <constraint firstItem="PZ8-Go-A85" firstAttribute="top" secondItem="iWC-mi-WKw" secondAttribute="bottom" constant="14" id="PYW-1u-Cgl"/> | 213 | + <constraint firstItem="S6F-Nw-LLu" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" constant="24" id="OfG-yU-B7K"/> |
| 195 | <constraint firstAttribute="trailing" secondItem="bTa-jT-Ufb" secondAttribute="trailing" constant="24" id="Qcz-Xf-6ks"/> | 214 | <constraint firstAttribute="trailing" secondItem="bTa-jT-Ufb" secondAttribute="trailing" constant="24" id="Qcz-Xf-6ks"/> |
| 196 | <constraint firstAttribute="trailing" secondItem="tOt-gP-Et5" secondAttribute="trailing" constant="24" id="TEj-0l-zzv"/> | 215 | <constraint firstAttribute="trailing" secondItem="tOt-gP-Et5" secondAttribute="trailing" constant="24" id="TEj-0l-zzv"/> |
| 197 | - <constraint firstItem="bTa-jT-Ufb" firstAttribute="top" secondItem="jug-xV-lmv" secondAttribute="bottom" constant="40" id="WGs-Pa-TME"/> | 216 | + <constraint firstAttribute="trailing" secondItem="S6F-Nw-LLu" secondAttribute="trailing" constant="24" id="XIV-gu-A7t"/> |
| 198 | <constraint firstItem="kQb-LM-Zaa" firstAttribute="top" secondItem="50f-Uw-WmD" secondAttribute="bottom" constant="17" id="Z5G-42-yfN"/> | 217 | <constraint firstItem="kQb-LM-Zaa" firstAttribute="top" secondItem="50f-Uw-WmD" secondAttribute="bottom" constant="17" id="Z5G-42-yfN"/> |
| 199 | <constraint firstItem="50f-Uw-WmD" firstAttribute="top" secondItem="mci-HQ-9iu" secondAttribute="top" id="a5j-3R-Mwh"/> | 218 | <constraint firstItem="50f-Uw-WmD" firstAttribute="top" secondItem="mci-HQ-9iu" secondAttribute="top" id="a5j-3R-Mwh"/> |
| 200 | <constraint firstAttribute="trailing" secondItem="jug-xV-lmv" secondAttribute="trailing" constant="24" id="b0Q-bb-wh3"/> | 219 | <constraint firstAttribute="trailing" secondItem="jug-xV-lmv" secondAttribute="trailing" constant="24" id="b0Q-bb-wh3"/> |
| 201 | <constraint firstItem="a1t-wH-dMg" firstAttribute="top" secondItem="50f-Uw-WmD" secondAttribute="bottom" constant="17" id="bSw-JI-jDV"/> | 220 | <constraint firstItem="a1t-wH-dMg" firstAttribute="top" secondItem="50f-Uw-WmD" secondAttribute="bottom" constant="17" id="bSw-JI-jDV"/> |
| 202 | <constraint firstItem="iWC-mi-WKw" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" constant="24" id="dMq-cH-vOX"/> | 221 | <constraint firstItem="iWC-mi-WKw" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" constant="24" id="dMq-cH-vOX"/> |
| 222 | + <constraint firstAttribute="bottom" secondItem="jug-xV-lmv" secondAttribute="bottom" constant="40" id="eha-mA-4uW"/> | ||
| 203 | <constraint firstItem="raJ-sJ-NGX" firstAttribute="top" secondItem="mci-HQ-9iu" secondAttribute="top" constant="17" id="g7b-Ql-ifv"/> | 223 | <constraint firstItem="raJ-sJ-NGX" firstAttribute="top" secondItem="mci-HQ-9iu" secondAttribute="top" constant="17" id="g7b-Ql-ifv"/> |
| 204 | - <constraint firstItem="aSO-pm-a0W" firstAttribute="top" secondItem="50f-Uw-WmD" secondAttribute="bottom" constant="23" id="jvc-rb-E6b"/> | 224 | + <constraint firstItem="aSO-pm-a0W" firstAttribute="top" secondItem="S6F-Nw-LLu" secondAttribute="bottom" constant="19" id="jvc-rb-E6b"/> |
| 205 | - <constraint firstItem="tOt-gP-Et5" firstAttribute="top" secondItem="PZ8-Go-A85" secondAttribute="bottom" constant="20" id="kQ3-4v-3Jp"/> | 225 | + <constraint firstItem="Haz-Ae-VkM" firstAttribute="top" secondItem="iWC-mi-WKw" secondAttribute="bottom" constant="22" id="kB9-ra-WhU"/> |
| 206 | <constraint firstItem="jug-xV-lmv" firstAttribute="top" secondItem="12M-YC-Cox" secondAttribute="bottom" constant="9.9999999999998863" id="kSx-qT-pPa"/> | 226 | <constraint firstItem="jug-xV-lmv" firstAttribute="top" secondItem="12M-YC-Cox" secondAttribute="bottom" constant="9.9999999999998863" id="kSx-qT-pPa"/> |
| 207 | - <constraint firstAttribute="bottom" secondItem="bTa-jT-Ufb" secondAttribute="bottom" constant="46" id="l42-O3-RQt"/> | 227 | + <constraint firstItem="tOt-gP-Et5" firstAttribute="top" secondItem="Haz-Ae-VkM" secondAttribute="bottom" constant="37" id="kzo-cb-j7v"/> |
| 208 | <constraint firstItem="bTa-jT-Ufb" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" constant="24" id="nR2-Py-LTi"/> | 228 | <constraint firstItem="bTa-jT-Ufb" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" constant="24" id="nR2-Py-LTi"/> |
| 229 | + <constraint firstItem="bTa-jT-Ufb" firstAttribute="top" relation="greaterThanOrEqual" secondItem="tOt-gP-Et5" secondAttribute="bottom" constant="50" id="nSD-Oa-JCj"/> | ||
| 209 | <constraint firstItem="jug-xV-lmv" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" constant="24" id="oUa-cz-J7N"/> | 230 | <constraint firstItem="jug-xV-lmv" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" constant="24" id="oUa-cz-J7N"/> |
| 231 | + <constraint firstAttribute="trailing" secondItem="aSO-pm-a0W" secondAttribute="trailing" constant="24" id="wfZ-SS-Kno"/> | ||
| 210 | <constraint firstItem="tOt-gP-Et5" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" constant="24" id="xz5-C4-0GD"/> | 232 | <constraint firstItem="tOt-gP-Et5" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" constant="24" id="xz5-C4-0GD"/> |
| 211 | </constraints> | 233 | </constraints> |
| 234 | + <variation key="default"> | ||
| 235 | + <mask key="subviews"> | ||
| 236 | + <exclude reference="raJ-sJ-NGX"/> | ||
| 237 | + <exclude reference="kQb-LM-Zaa"/> | ||
| 238 | + <exclude reference="a1t-wH-dMg"/> | ||
| 239 | + </mask> | ||
| 240 | + </variation> | ||
| 212 | </view> | 241 | </view> |
| 213 | </subviews> | 242 | </subviews> |
| 214 | <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | 243 | <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| ... | @@ -226,6 +255,7 @@ | ... | @@ -226,6 +255,7 @@ |
| 226 | <color key="backgroundColor" red="0.94901960780000005" green="0.94901960780000005" blue="0.94901960780000005" alpha="1" colorSpace="calibratedRGB"/> | 255 | <color key="backgroundColor" red="0.94901960780000005" green="0.94901960780000005" blue="0.94901960780000005" alpha="1" colorSpace="calibratedRGB"/> |
| 227 | <constraints> | 256 | <constraints> |
| 228 | <constraint firstAttribute="trailing" secondItem="GDr-bX-h2w" secondAttribute="trailing" id="6Rw-Bg-NO4"/> | 257 | <constraint firstAttribute="trailing" secondItem="GDr-bX-h2w" secondAttribute="trailing" id="6Rw-Bg-NO4"/> |
| 258 | + <constraint firstItem="mci-HQ-9iu" firstAttribute="height" secondItem="SHO-CC-9Fd" secondAttribute="height" priority="250" id="BiG-6i-WVL"/> | ||
| 229 | <constraint firstItem="mci-HQ-9iu" firstAttribute="height" relation="greaterThanOrEqual" secondItem="SHO-CC-9Fd" secondAttribute="height" id="MbQ-SS-x84"/> | 259 | <constraint firstItem="mci-HQ-9iu" firstAttribute="height" relation="greaterThanOrEqual" secondItem="SHO-CC-9Fd" secondAttribute="height" id="MbQ-SS-x84"/> |
| 230 | <constraint firstItem="GDr-bX-h2w" firstAttribute="leading" secondItem="SHO-CC-9Fd" secondAttribute="leading" id="MlF-Ct-Ncs"/> | 260 | <constraint firstItem="GDr-bX-h2w" firstAttribute="leading" secondItem="SHO-CC-9Fd" secondAttribute="leading" id="MlF-Ct-Ncs"/> |
| 231 | <constraint firstAttribute="bottom" secondItem="GDr-bX-h2w" secondAttribute="bottom" id="ffd-WV-jyV"/> | 261 | <constraint firstAttribute="bottom" secondItem="GDr-bX-h2w" secondAttribute="bottom" id="ffd-WV-jyV"/> | ... | ... |
-
Please register or login to post a comment