Showing
4 changed files
with
372 additions
and
30 deletions
No preview for this file type
... | @@ -101,7 +101,7 @@ struct OfferModel { | ... | @@ -101,7 +101,7 @@ struct OfferModel { |
101 | discountType: "price", | 101 | discountType: "price", |
102 | bannerImage: "dominos_banner", | 102 | bannerImage: "dominos_banner", |
103 | merchantLogo: "dominos_logo", | 103 | merchantLogo: "dominos_logo", |
104 | - expirationDate: "έως 30/09", | 104 | + expirationDate: "έως 30-09", |
105 | color: 0xEE417D, | 105 | color: 0xEE417D, |
106 | isFavorite: true | 106 | isFavorite: true |
107 | ), | 107 | ), |
... | @@ -113,7 +113,7 @@ struct OfferModel { | ... | @@ -113,7 +113,7 @@ struct OfferModel { |
113 | discountType: "percentage", | 113 | discountType: "percentage", |
114 | bannerImage: "dominos_banner", | 114 | bannerImage: "dominos_banner", |
115 | merchantLogo: "dominos_logo", | 115 | merchantLogo: "dominos_logo", |
116 | - expirationDate: "έως 30/09", | 116 | + expirationDate: "έως 30-09", |
117 | color: 0xEE417D, | 117 | color: 0xEE417D, |
118 | isFavorite: false | 118 | isFavorite: false |
119 | ), | 119 | ), |
... | @@ -127,7 +127,7 @@ struct OfferModel { | ... | @@ -127,7 +127,7 @@ struct OfferModel { |
127 | // discountType: "percentage", | 127 | // discountType: "percentage", |
128 | // bannerImage: "car_rental_banner", | 128 | // bannerImage: "car_rental_banner", |
129 | // merchantLogo: "avis_logo", | 129 | // merchantLogo: "avis_logo", |
130 | - // expirationDate: "έως 30/09", | 130 | + // expirationDate: "έως 30-09", |
131 | // color: 0xEE417D, | 131 | // color: 0xEE417D, |
132 | // isFavorite: true | 132 | // isFavorite: true |
133 | // ), | 133 | // ), |
... | @@ -139,7 +139,7 @@ struct OfferModel { | ... | @@ -139,7 +139,7 @@ struct OfferModel { |
139 | // discountType: "amount", | 139 | // discountType: "amount", |
140 | // bannerImage: "hotel_banner", | 140 | // bannerImage: "hotel_banner", |
141 | // merchantLogo: "booking_logo", | 141 | // merchantLogo: "booking_logo", |
142 | - // expirationDate: "έως 30/09", | 142 | + // expirationDate: "έως 30-09", |
143 | // color: 0xEE417D, | 143 | // color: 0xEE417D, |
144 | // isFavorite: true | 144 | // isFavorite: true |
145 | // ), | 145 | // ), |
... | @@ -153,7 +153,7 @@ struct OfferModel { | ... | @@ -153,7 +153,7 @@ struct OfferModel { |
153 | discountType: "percentage", | 153 | discountType: "percentage", |
154 | bannerImage: "musa_banner", | 154 | bannerImage: "musa_banner", |
155 | merchantLogo: "musa_logo", | 155 | merchantLogo: "musa_logo", |
156 | - expirationDate: "έως 30/09", | 156 | + expirationDate: "έως 30-09", |
157 | color: 0x09914E, | 157 | color: 0x09914E, |
158 | isFavorite: false | 158 | isFavorite: false |
159 | ), | 159 | ), |
... | @@ -165,7 +165,7 @@ struct OfferModel { | ... | @@ -165,7 +165,7 @@ struct OfferModel { |
165 | discountType: "percentage", | 165 | discountType: "percentage", |
166 | bannerImage: "musa_banner", | 166 | bannerImage: "musa_banner", |
167 | merchantLogo: "musa_logo", | 167 | merchantLogo: "musa_logo", |
168 | - expirationDate: "έως 30/09", | 168 | + expirationDate: "έως 30-09", |
169 | color: 0x09914E, | 169 | color: 0x09914E, |
170 | isFavorite: true | 170 | isFavorite: true |
171 | ), | 171 | ), |
... | @@ -179,7 +179,7 @@ struct OfferModel { | ... | @@ -179,7 +179,7 @@ struct OfferModel { |
179 | discountType: "percentage", | 179 | discountType: "percentage", |
180 | bannerImage: "ranch_banner", | 180 | bannerImage: "ranch_banner", |
181 | merchantLogo: "ranch_logo", | 181 | merchantLogo: "ranch_logo", |
182 | - expirationDate: "έως 30/09", | 182 | + expirationDate: "έως 30-09", |
183 | color: 0xFC9F25, | 183 | color: 0xFC9F25, |
184 | isFavorite: false | 184 | isFavorite: false |
185 | ), | 185 | ), |
... | @@ -191,7 +191,7 @@ struct OfferModel { | ... | @@ -191,7 +191,7 @@ struct OfferModel { |
191 | discountType: "buyOneGetOne", | 191 | discountType: "buyOneGetOne", |
192 | bannerImage: "ranch_banner", | 192 | bannerImage: "ranch_banner", |
193 | merchantLogo: "ranch_logo", | 193 | merchantLogo: "ranch_logo", |
194 | - expirationDate: "έως 30/09", | 194 | + expirationDate: "έως 30-09", |
195 | color: 0xFC9F25, | 195 | color: 0xFC9F25, |
196 | isFavorite: false | 196 | isFavorite: false |
197 | ), | 197 | ), |
... | @@ -205,7 +205,7 @@ struct OfferModel { | ... | @@ -205,7 +205,7 @@ struct OfferModel { |
205 | discountType: "amount", | 205 | discountType: "amount", |
206 | bannerImage: "coffeeisland_banner", | 206 | bannerImage: "coffeeisland_banner", |
207 | merchantLogo: "coffeeisland_logo", | 207 | merchantLogo: "coffeeisland_logo", |
208 | - expirationDate: "έως 30/09", | 208 | + expirationDate: "έως 30-09", |
209 | color: 0xEE417D, | 209 | color: 0xEE417D, |
210 | isFavorite: false | 210 | isFavorite: false |
211 | ), | 211 | ), |
... | @@ -217,7 +217,7 @@ struct OfferModel { | ... | @@ -217,7 +217,7 @@ struct OfferModel { |
217 | discountType: "percentage", | 217 | discountType: "percentage", |
218 | bannerImage: "coffeeisland_banner", | 218 | bannerImage: "coffeeisland_banner", |
219 | merchantLogo: "coffeeisland_logo", | 219 | merchantLogo: "coffeeisland_logo", |
220 | - expirationDate: "έως 30/09", | 220 | + expirationDate: "έως 30-09", |
221 | color: 0xEE417D, | 221 | color: 0xEE417D, |
222 | isFavorite: false | 222 | isFavorite: false |
223 | ), | 223 | ), |
... | @@ -231,7 +231,7 @@ struct OfferModel { | ... | @@ -231,7 +231,7 @@ struct OfferModel { |
231 | discountType: "percentage", | 231 | discountType: "percentage", |
232 | bannerImage: "ninemia_banner", | 232 | bannerImage: "ninemia_banner", |
233 | merchantLogo: "ninemia_logo", | 233 | merchantLogo: "ninemia_logo", |
234 | - expirationDate: "έως 30/09", | 234 | + expirationDate: "έως 30-09", |
235 | color: 0xEE417D, | 235 | color: 0xEE417D, |
236 | isFavorite: true | 236 | isFavorite: true |
237 | ), | 237 | ), |
... | @@ -243,7 +243,7 @@ struct OfferModel { | ... | @@ -243,7 +243,7 @@ struct OfferModel { |
243 | discountType: "percentage", | 243 | discountType: "percentage", |
244 | bannerImage: "ninemia_banner", | 244 | bannerImage: "ninemia_banner", |
245 | merchantLogo: "ninemia_logo", | 245 | merchantLogo: "ninemia_logo", |
246 | - expirationDate: "έως 30/09", | 246 | + expirationDate: "έως 30-09", |
247 | color: 0xEE417D, | 247 | color: 0xEE417D, |
248 | isFavorite: false | 248 | isFavorite: false |
249 | ), | 249 | ), |
... | @@ -257,7 +257,7 @@ struct OfferModel { | ... | @@ -257,7 +257,7 @@ struct OfferModel { |
257 | discountType: "percentage", | 257 | discountType: "percentage", |
258 | bannerImage: "moustakas_banner", | 258 | bannerImage: "moustakas_banner", |
259 | merchantLogo: "moustakas_logo", | 259 | merchantLogo: "moustakas_logo", |
260 | - expirationDate: "έως 30/09", | 260 | + expirationDate: "έως 30-09", |
261 | color: 0xEE417D, | 261 | color: 0xEE417D, |
262 | isFavorite: false | 262 | isFavorite: false |
263 | ), | 263 | ), |
... | @@ -269,7 +269,7 @@ struct OfferModel { | ... | @@ -269,7 +269,7 @@ struct OfferModel { |
269 | discountType: "buyOneGetOne", | 269 | discountType: "buyOneGetOne", |
270 | bannerImage: "moustakas_banner", | 270 | bannerImage: "moustakas_banner", |
271 | merchantLogo: "moustakas_logo", | 271 | merchantLogo: "moustakas_logo", |
272 | - expirationDate: "έως 30/09", | 272 | + expirationDate: "έως 30-09", |
273 | color: 0xEE417D, | 273 | color: 0xEE417D, |
274 | isFavorite: false | 274 | isFavorite: false |
275 | ), | 275 | ), |
... | @@ -283,7 +283,7 @@ struct OfferModel { | ... | @@ -283,7 +283,7 @@ struct OfferModel { |
283 | discountType: "amount", | 283 | discountType: "amount", |
284 | bannerImage: "migato_banner", | 284 | bannerImage: "migato_banner", |
285 | merchantLogo: "migato_logo", | 285 | merchantLogo: "migato_logo", |
286 | - expirationDate: "έως 30/09", | 286 | + expirationDate: "έως 30-09", |
287 | color: 0xEE417D, | 287 | color: 0xEE417D, |
288 | isFavorite: false | 288 | isFavorite: false |
289 | ), | 289 | ), |
... | @@ -295,7 +295,7 @@ struct OfferModel { | ... | @@ -295,7 +295,7 @@ struct OfferModel { |
295 | discountType: "percentage", | 295 | discountType: "percentage", |
296 | bannerImage: "migato_banner", | 296 | bannerImage: "migato_banner", |
297 | merchantLogo: "migato_logo", | 297 | merchantLogo: "migato_logo", |
298 | - expirationDate: "έως 30/09", | 298 | + expirationDate: "έως 30-09", |
299 | color: 0xEE417D, | 299 | color: 0xEE417D, |
300 | isFavorite: false | 300 | isFavorite: false |
301 | ) | 301 | ) | ... | ... |
... | @@ -8,22 +8,325 @@ | ... | @@ -8,22 +8,325 @@ |
8 | import UIKit | 8 | import UIKit |
9 | 9 | ||
10 | @objc public class ProfileViewController: UIViewController { | 10 | @objc public class ProfileViewController: UIViewController { |
11 | + @IBOutlet weak var tableView: UITableView! | ||
11 | 12 | ||
13 | + // MARK: - Dummy Data | ||
14 | + let allOffers: [OfferModel] = [ | ||
15 | + // Προτάσεις για εσένα | ||
16 | + OfferModel( | ||
17 | + category: "Προτάσεις για εσένα", | ||
18 | + title: "15% έκπτωση", | ||
19 | + description: "σε όλα τα προϊόντα", | ||
20 | + discount: "15%", | ||
21 | + discountType: "percentage", | ||
22 | + bannerImage: "musa_banner", | ||
23 | + merchantLogo: "musa_logo", | ||
24 | + expirationDate: "έως 30-09", | ||
25 | + color: 0x09914E, | ||
26 | + isFavorite: true, | ||
27 | + active: false, | ||
28 | + redeemed: false | ||
29 | + ), | ||
30 | + OfferModel( | ||
31 | + category: "Προτάσεις για εσένα", | ||
32 | + title: "10% έκπτωση", | ||
33 | + description: "στην κατασκήνωση στο The Ranch", | ||
34 | + discount: "10%", | ||
35 | + discountType: "percentage", | ||
36 | + bannerImage: "ranch_banner", | ||
37 | + merchantLogo: "ranch_logo", | ||
38 | + expirationDate: "έως 30-09", | ||
39 | + color: 0xFC9F25, | ||
40 | + isFavorite: false, | ||
41 | + active: false, | ||
42 | + redeemed: false | ||
43 | + ), | ||
44 | + OfferModel( | ||
45 | + category: "Προτάσεις για εσένα", | ||
46 | + title: "1+1 εισιτήριο", | ||
47 | + description: "δώρο στην είσοδο του παιδότοπου", | ||
48 | + discount: "1+1", | ||
49 | + discountType: "buyOneGetOne", | ||
50 | + bannerImage: "ranch_banner", | ||
51 | + merchantLogo: "ranch_logo", | ||
52 | + expirationDate: "έως 30-09", | ||
53 | + color: 0xFC9F25, | ||
54 | + isFavorite: true, | ||
55 | + active: false, | ||
56 | + redeemed: false | ||
57 | + ), | ||
58 | + OfferModel( | ||
59 | + category: "Προτάσεις για εσένα", | ||
60 | + title: "10% έκπτωση", | ||
61 | + description: "σε όλες τις υπηρεσίες", | ||
62 | + discount: "10%", | ||
63 | + discountType: "percentage", | ||
64 | + bannerImage: "ninemia_banner", | ||
65 | + merchantLogo: "ninemia_logo", | ||
66 | + expirationDate: "έως 30-09", | ||
67 | + color: 0xEE417D, | ||
68 | + isFavorite: false, | ||
69 | + active: false, | ||
70 | + redeemed: false | ||
71 | + ), | ||
72 | + OfferModel( | ||
73 | + category: "Προτάσεις για εσένα", | ||
74 | + title: "10% έκπτωση", | ||
75 | + description: "για αγορές από τα φυσικά καταστήματα", | ||
76 | + discount: "10%", | ||
77 | + discountType: "percentage", | ||
78 | + bannerImage: "moustakas_banner", | ||
79 | + merchantLogo: "moustakas_logo", | ||
80 | + expirationDate: "έως 30-09", | ||
81 | + color: 0xEE417D, | ||
82 | + isFavorite: true, | ||
83 | + active: false, | ||
84 | + redeemed: false | ||
85 | + ), | ||
86 | + // Active | ||
87 | + OfferModel( | ||
88 | + category: "Top offers", | ||
89 | + title: "Μόνο 17,95", | ||
90 | + description: "2 πίτσες & Coca-Cola 1,5lt", | ||
91 | + discount: "17,95€", | ||
92 | + discountType: "price", | ||
93 | + bannerImage: "dominos_banner", | ||
94 | + merchantLogo: "dominos_logo", | ||
95 | + expirationDate: "έως 30-09", | ||
96 | + color: 0xEE417D, | ||
97 | + isFavorite: true, | ||
98 | + active: true, | ||
99 | + redeemed: false | ||
100 | + ), | ||
101 | + OfferModel( | ||
102 | + category: "Φαγητό και καφές", | ||
103 | + title: "2€ έκπτωση", | ||
104 | + description: "στην αγορά σου", | ||
105 | + discount: "2€", | ||
106 | + discountType: "amount", | ||
107 | + bannerImage: "coffeeisland_banner", | ||
108 | + merchantLogo: "coffeeisland_logo", | ||
109 | + expirationDate: "έως 30-09", | ||
110 | + color: 0xEE417D, | ||
111 | + isFavorite: false, | ||
112 | + active: true, | ||
113 | + redeemed: false | ||
114 | + ), | ||
115 | + OfferModel( | ||
116 | + category: "Top offers", | ||
117 | + title: "10% έκπτωση", | ||
118 | + description: "σε γλυκούς πειρασμούς", | ||
119 | + discount: "10%", | ||
120 | + discountType: "percentage", | ||
121 | + bannerImage: "zuccherino_banner", | ||
122 | + merchantLogo: "zuccherino_logo", | ||
123 | + expirationDate: "έως 30-09", | ||
124 | + color: 0xEE417D, | ||
125 | + isFavorite: false, | ||
126 | + active: true, | ||
127 | + redeemed: false | ||
128 | + ), | ||
129 | + // Απόδραση | ||
130 | + OfferModel( | ||
131 | + category: "Απόδραση", | ||
132 | + title: "10% έκπτωση", | ||
133 | + description: "στην διαμονή/διασκέδαση σου", | ||
134 | + discount: "10%", | ||
135 | + discountType: "percentage", | ||
136 | + bannerImage: "ninemia_banner", | ||
137 | + merchantLogo: "ninemia_logo", | ||
138 | + expirationDate: "έως 30-09", | ||
139 | + color: 0xEE417D, | ||
140 | + isFavorite: true, | ||
141 | + active: false, | ||
142 | + redeemed: true | ||
143 | + ), | ||
144 | + OfferModel( | ||
145 | + category: "Παιδί", | ||
146 | + title: "1+1 Δώρο", | ||
147 | + description: "στην είσοδο του παιδότοπου", | ||
148 | + discount: "1+1", | ||
149 | + discountType: "buyOneGetOne", | ||
150 | + bannerImage: "moustakas_banner", | ||
151 | + merchantLogo: "moustakas_logo", | ||
152 | + expirationDate: "έως 30-09", | ||
153 | + color: 0xEE417D, | ||
154 | + isFavorite: false, | ||
155 | + active: false, | ||
156 | + redeemed: true | ||
157 | + ), | ||
158 | + // Αγορές | ||
159 | + OfferModel( | ||
160 | + category: "Αγορές", | ||
161 | + title: "15€ έκπτωση", | ||
162 | + description: "για αγορές", | ||
163 | + discount: "15€", | ||
164 | + discountType: "amount", | ||
165 | + bannerImage: "migato_banner", | ||
166 | + merchantLogo: "migato_logo", | ||
167 | + expirationDate: "έως 30-09", | ||
168 | + color: 0xEE417D, | ||
169 | + isFavorite: false, | ||
170 | + active: false, | ||
171 | + redeemed: true | ||
172 | + ) | ||
173 | + ] | ||
174 | + | ||
175 | + var forYouOffersSection: SectionModel? | ||
176 | + var activeOffersSection: SectionModel? | ||
177 | + var favoriteOffersSection: SectionModel? | ||
178 | + var redeemedOffersSection: SectionModel? | ||
179 | + var filteredOffersSection: SectionModel? | ||
180 | + | ||
12 | public override func viewDidLoad() { | 181 | public override func viewDidLoad() { |
13 | super.viewDidLoad() | 182 | super.viewDidLoad() |
14 | 183 | ||
15 | - // Do any additional setup after loading the view. | 184 | + // Show navigation bar for this screen (with back button) |
185 | + self.navigationController?.setNavigationBarHidden(false, animated: false) | ||
186 | + setBackButton() | ||
187 | + setNavigationTitle("Το προφίλ μου") | ||
188 | + | ||
189 | + // Register XIBs for table view cells | ||
190 | + // tableView.register(UINib(nibName: "MyRewardsBannerOffersScrollTableViewCell", bundle: Bundle(for: MyEmptyClass.self)), forCellReuseIdentifier: "MyRewardsBannerOffersScrollTableViewCell") | ||
191 | + // tableView.register(UINib(nibName: "MyRewardsOffersScrollTableViewCell", bundle: Bundle(for: MyEmptyClass.self)), forCellReuseIdentifier: "MyRewardsOffersScrollTableViewCell") | ||
192 | + | ||
193 | + // Set up table view | ||
194 | + tableView.delegate = self | ||
195 | + tableView.dataSource = self | ||
196 | + tableView.separatorStyle = .none | ||
197 | + tableView.estimatedRowHeight = 200 | ||
198 | + tableView.rowHeight = UITableView.automaticDimension | ||
199 | + | ||
200 | + initializeSections() | ||
16 | } | 201 | } |
17 | 202 | ||
203 | + // MARK: Function | ||
204 | + func initializeSections() { | ||
205 | + // Προτάσεις για εσένα | ||
206 | + let forYouOffers = allOffers.filter { $0.category == "Προτάσεις για εσένα" } | ||
207 | + forYouOffersSection = SectionModel( | ||
208 | + title: "Προτάσεις για εσένα", | ||
209 | + count: forYouOffers.count, | ||
210 | + offers: forYouOffers | ||
211 | + ) | ||
212 | + | ||
213 | + // Favorite Offers | ||
214 | + let activeOffers = allOffers.filter { $0.active } | ||
215 | + activeOffersSection = SectionModel( | ||
216 | + title: "Ενεργά", | ||
217 | + count: activeOffers.count, | ||
218 | + offers: activeOffers | ||
219 | + ) | ||
220 | + | ||
221 | + // Favorite Offers | ||
222 | + let favoriteOffers = allOffers.filter { $0.isFavorite } | ||
223 | + favoriteOffersSection = SectionModel( | ||
224 | + title: "Αγαπημένα", | ||
225 | + count: favoriteOffers.count, | ||
226 | + offers: favoriteOffers | ||
227 | + ) | ||
228 | + | ||
229 | + // Favorite Offers | ||
230 | + let redeemedOffers = allOffers.filter { $0.redeemed } | ||
231 | + redeemedOffersSection = SectionModel( | ||
232 | + title: "Αγαπημένα", | ||
233 | + count: redeemedOffers.count, | ||
234 | + offers: redeemedOffers | ||
235 | + ) | ||
236 | + | ||
237 | + self.tableView.reloadData() | ||
238 | + } | ||
239 | +} | ||
240 | + | ||
241 | +// MARK: - TableView | ||
242 | +extension MyRewardsViewController: UITableViewDelegate, UITableViewDataSource{ | ||
243 | + | ||
244 | + public func numberOfSections(in tableView: UITableView) -> Int { | ||
245 | + return 4 + filteredOffersSection.offers.count | ||
246 | + } | ||
247 | + | ||
248 | + public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { | ||
249 | + return 1 | ||
250 | + } | ||
251 | + | ||
252 | + public func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { | ||
253 | + return UITableView.automaticDimension | ||
254 | + } | ||
255 | + | ||
256 | + public func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { | ||
257 | + return nil | ||
258 | + } | ||
18 | 259 | ||
19 | - /* | 260 | + public func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { |
20 | - // MARK: - Navigation | 261 | + return 0.0 |
262 | + } | ||
21 | 263 | ||
22 | - // In a storyboard-based application, you will often want to do a little preparation before navigation | 264 | + public func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { |
23 | - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { | 265 | +// return CGFloat.leastNormalMagnitude |
24 | - // Get the new view controller using segue.destination. | 266 | + return 0.0 |
25 | - // Pass the selected object to the new view controller. | ||
26 | } | 267 | } |
27 | - */ | ||
28 | 268 | ||
269 | + public func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { | ||
270 | + return nil | ||
271 | + } | ||
272 | + | ||
273 | + public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { | ||
274 | + if (indexPath.section == 0) { | ||
275 | + let cell = tableView.dequeueReusableCell(withIdentifier: "MyRewardsBannerOffersScrollTableViewCell", for: indexPath) as! MyRewardsBannerOffersScrollTableViewCell | ||
276 | + cell.delegate = self // Set the banner offers delegate | ||
277 | + cell.configureCell(data: self.bannerOffersSection) | ||
278 | +// cell.parent = self | ||
279 | + return cell | ||
280 | + | ||
281 | + } else { | ||
282 | + let cell = tableView.dequeueReusableCell(withIdentifier: "MyRewardsOffersScrollTableViewCell", for: indexPath) as! MyRewardsOffersScrollTableViewCell | ||
283 | + | ||
284 | + cell.delegate = self // Set the offers delegate | ||
285 | + | ||
286 | + if (indexPath.section == 1) { | ||
287 | + cell.configureCell(data: self.topOffersSection) | ||
288 | + } else if (indexPath.section == 2) { | ||
289 | + cell.configureCell(data: self.favoriteOffersSection) | ||
290 | + } else if (indexPath.section == 3) { | ||
291 | + cell.configureCell(data: self.sustainableOffersSection) | ||
292 | + } else if (indexPath.section == 4) { | ||
293 | + cell.configureCell(data: self.familyOffersSection) | ||
294 | + } else if (indexPath.section == 5) { | ||
295 | + cell.configureCell(data: self.foodOffersSection) | ||
296 | + } else if (indexPath.section == 6) { | ||
297 | + cell.configureCell(data: self.escapeOffersSection) | ||
298 | + } else if (indexPath.section == 7) { | ||
299 | + cell.configureCell(data: self.childOffersSection) | ||
300 | + } else { | ||
301 | + cell.configureCell(data: self.shoppingOffersSection) | ||
302 | + } | ||
303 | + | ||
304 | + return cell | ||
305 | + } | ||
306 | + | ||
307 | + } | ||
308 | + | ||
309 | + public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { | ||
310 | + if (indexPath.section == 0) { | ||
311 | + // Do nothing - Each button is handled differently | ||
312 | + | ||
313 | + } else if (indexPath.section == 1) { | ||
314 | + // Do nothing | ||
315 | + } else if (indexPath.section == 2) { | ||
316 | + // Do nothing | ||
317 | + } else if (indexPath.section == 3) { | ||
318 | + // Do nothing | ||
319 | + } else if (indexPath.section == 4) { | ||
320 | + // Do nothing | ||
321 | + } else if (indexPath.section == 5) { | ||
322 | + // Do nothing | ||
323 | + } else if (indexPath.section == 6) { | ||
324 | + // Do nothing | ||
325 | + } else if (indexPath.section == 7) { | ||
326 | + // Do nothing | ||
327 | + } else { | ||
328 | + // Do nothing | ||
329 | + } | ||
330 | + } | ||
29 | } | 331 | } |
332 | + | ... | ... |
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="ProfileViewController" customModuleProvider="target"> | 11 | + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ProfileViewController" customModule="SwiftWarplyFramework" customModuleProvider="target"> |
10 | <connections> | 12 | <connections> |
13 | + <outlet property="tableView" destination="Lyp-gB-nMU" id="qcx-6z-teY"/> | ||
11 | <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> | 14 | <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> |
12 | </connections> | 15 | </connections> |
13 | </placeholder> | 16 | </placeholder> |
14 | <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> | 17 | <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> |
15 | <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT"> | 18 | <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT"> |
16 | - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | 19 | + <rect key="frame" x="0.0" y="0.0" width="393" height="852"/> |
17 | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | 20 | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
18 | - <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/> | 21 | + <subviews> |
22 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="35E-2c-fwB" userLabel="Main View"> | ||
23 | + <rect key="frame" x="0.0" y="59" width="393" height="793"/> | ||
24 | + <subviews> | ||
25 | + <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" estimatedSectionHeaderHeight="-1" sectionFooterHeight="28" estimatedSectionFooterHeight="-1" contentViewInsetsToSafeArea="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Lyp-gB-nMU"> | ||
26 | + <rect key="frame" x="0.0" y="0.0" width="393" height="793"/> | ||
27 | + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
28 | + <color key="separatorColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
29 | + <color key="sectionIndexBackgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
30 | + <connections> | ||
31 | + <outlet property="dataSource" destination="-1" id="YLY-kN-FuL"/> | ||
32 | + <outlet property="delegate" destination="-1" id="8wu-Tv-kNd"/> | ||
33 | + </connections> | ||
34 | + </tableView> | ||
35 | + </subviews> | ||
36 | + <color key="backgroundColor" red="0.94901960780000005" green="0.94901960780000005" blue="0.94901960780000005" alpha="1" colorSpace="calibratedRGB"/> | ||
37 | + <constraints> | ||
38 | + <constraint firstItem="Lyp-gB-nMU" firstAttribute="top" secondItem="35E-2c-fwB" secondAttribute="top" id="ZSr-fH-jKR"/> | ||
39 | + <constraint firstAttribute="bottom" secondItem="Lyp-gB-nMU" secondAttribute="bottom" id="kxk-Ld-8kk"/> | ||
40 | + <constraint firstItem="Lyp-gB-nMU" firstAttribute="leading" secondItem="35E-2c-fwB" secondAttribute="leading" id="nId-cX-Bq6"/> | ||
41 | + <constraint firstAttribute="trailing" secondItem="Lyp-gB-nMU" secondAttribute="trailing" id="wzt-qW-Jpz"/> | ||
42 | + </constraints> | ||
43 | + </view> | ||
44 | + </subviews> | ||
19 | <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> | 45 | <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> |
46 | + <color key="backgroundColor" systemColor="systemBackgroundColor"/> | ||
47 | + <constraints> | ||
48 | + <constraint firstAttribute="trailing" secondItem="35E-2c-fwB" secondAttribute="trailing" id="6p0-6e-iUG"/> | ||
49 | + <constraint firstItem="35E-2c-fwB" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="GVO-tH-EEu"/> | ||
50 | + <constraint firstAttribute="bottom" secondItem="35E-2c-fwB" secondAttribute="bottom" id="Hmw-0d-E4K"/> | ||
51 | + <constraint firstItem="35E-2c-fwB" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" id="ajn-1A-hAX"/> | ||
52 | + </constraints> | ||
53 | + <point key="canvasLocation" x="11" y="-11"/> | ||
20 | </view> | 54 | </view> |
21 | </objects> | 55 | </objects> |
56 | + <resources> | ||
57 | + <systemColor name="systemBackgroundColor"> | ||
58 | + <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
59 | + </systemColor> | ||
60 | + </resources> | ||
22 | </document> | 61 | </document> | ... | ... |
-
Please register or login to post a comment