Showing
3 changed files
with
45 additions
and
14 deletions
No preview for this file type
... | @@ -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 | } | ... | ... |
This diff is collapsed. Click to expand it.
-
Please register or login to post a comment