Showing
87 changed files
with
978 additions
and
48 deletions
... | @@ -7,6 +7,8 @@ | ... | @@ -7,6 +7,8 @@ |
7 | objects = { | 7 | objects = { |
8 | 8 | ||
9 | /* Begin PBXBuildFile section */ | 9 | /* Begin PBXBuildFile section */ |
10 | + 1E64E1832DE48E0600543217 /* MyRewardsOfferCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1E64E1822DE48E0600543217 /* MyRewardsOfferCollectionViewCell.xib */; }; | ||
11 | + 1E64E1842DE48E0600543217 /* MyRewardsOfferCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E64E1812DE48E0600543217 /* MyRewardsOfferCollectionViewCell.swift */; }; | ||
10 | 1E917CD62DDF64B2002221D8 /* MyRewardsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1E917CD52DDF64B2002221D8 /* MyRewardsViewController.xib */; }; | 12 | 1E917CD62DDF64B2002221D8 /* MyRewardsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1E917CD52DDF64B2002221D8 /* MyRewardsViewController.xib */; }; |
11 | 1E917CD72DDF64B2002221D8 /* MyRewardsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E917CD42DDF64B2002221D8 /* MyRewardsViewController.swift */; }; | 13 | 1E917CD72DDF64B2002221D8 /* MyRewardsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E917CD42DDF64B2002221D8 /* MyRewardsViewController.swift */; }; |
12 | 1E917CDB2DDF68C7002221D8 /* CouponViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1E917CDA2DDF68C7002221D8 /* CouponViewController.xib */; }; | 14 | 1E917CDB2DDF68C7002221D8 /* CouponViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1E917CDA2DDF68C7002221D8 /* CouponViewController.xib */; }; |
... | @@ -148,6 +150,8 @@ | ... | @@ -148,6 +150,8 @@ |
148 | 150 | ||
149 | /* Begin PBXFileReference section */ | 151 | /* Begin PBXFileReference section */ |
150 | 1E108A9728A3FA9B0008B8E7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; | 152 | 1E108A9728A3FA9B0008B8E7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; |
153 | + 1E64E1812DE48E0600543217 /* MyRewardsOfferCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyRewardsOfferCollectionViewCell.swift; sourceTree = "<group>"; }; | ||
154 | + 1E64E1822DE48E0600543217 /* MyRewardsOfferCollectionViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MyRewardsOfferCollectionViewCell.xib; sourceTree = "<group>"; }; | ||
151 | 1E917CD42DDF64B2002221D8 /* MyRewardsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyRewardsViewController.swift; sourceTree = "<group>"; }; | 155 | 1E917CD42DDF64B2002221D8 /* MyRewardsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyRewardsViewController.swift; sourceTree = "<group>"; }; |
152 | 1E917CD52DDF64B2002221D8 /* MyRewardsViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MyRewardsViewController.xib; sourceTree = "<group>"; }; | 156 | 1E917CD52DDF64B2002221D8 /* MyRewardsViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MyRewardsViewController.xib; sourceTree = "<group>"; }; |
153 | 1E917CD92DDF68C7002221D8 /* CouponViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponViewController.swift; sourceTree = "<group>"; }; | 157 | 1E917CD92DDF68C7002221D8 /* CouponViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponViewController.swift; sourceTree = "<group>"; }; |
... | @@ -327,6 +331,15 @@ | ... | @@ -327,6 +331,15 @@ |
327 | name = Fonts; | 331 | name = Fonts; |
328 | sourceTree = "<group>"; | 332 | sourceTree = "<group>"; |
329 | }; | 333 | }; |
334 | + 1E64E1802DE48DD600543217 /* MyRewardsOfferCollectionViewCell */ = { | ||
335 | + isa = PBXGroup; | ||
336 | + children = ( | ||
337 | + 1E64E1812DE48E0600543217 /* MyRewardsOfferCollectionViewCell.swift */, | ||
338 | + 1E64E1822DE48E0600543217 /* MyRewardsOfferCollectionViewCell.xib */, | ||
339 | + ); | ||
340 | + path = MyRewardsOfferCollectionViewCell; | ||
341 | + sourceTree = "<group>"; | ||
342 | + }; | ||
330 | 1E917CD32DDF6472002221D8 /* MyRewardsViewController */ = { | 343 | 1E917CD32DDF6472002221D8 /* MyRewardsViewController */ = { |
331 | isa = PBXGroup; | 344 | isa = PBXGroup; |
332 | children = ( | 345 | children = ( |
... | @@ -368,6 +381,7 @@ | ... | @@ -368,6 +381,7 @@ |
368 | 1EA8E5BC2DDF34FB00CD3418 /* cells */ = { | 381 | 1EA8E5BC2DDF34FB00CD3418 /* cells */ = { |
369 | isa = PBXGroup; | 382 | isa = PBXGroup; |
370 | children = ( | 383 | children = ( |
384 | + 1E64E1802DE48DD600543217 /* MyRewardsOfferCollectionViewCell */, | ||
371 | 1ED41E492DE0C21800836ABA /* MyRewardsBannerOfferCollectionViewCell */, | 385 | 1ED41E492DE0C21800836ABA /* MyRewardsBannerOfferCollectionViewCell */, |
372 | 1EB4F4282DE0A09500D934C0 /* MyRewardsOffersScrollTableViewCell */, | 386 | 1EB4F4282DE0A09500D934C0 /* MyRewardsOffersScrollTableViewCell */, |
373 | 1EB4F4222DE09A4300D934C0 /* MyRewardsBannerOffersScrollTableViewCell */, | 387 | 1EB4F4222DE09A4300D934C0 /* MyRewardsBannerOffersScrollTableViewCell */, |
... | @@ -822,6 +836,7 @@ | ... | @@ -822,6 +836,7 @@ |
822 | E6A77905282933E60045BBA8 /* warp_white_back_button@2x.png in Resources */, | 836 | E6A77905282933E60045BBA8 /* warp_white_back_button@2x.png in Resources */, |
823 | 1EB4F4252DE09AAC00D934C0 /* MyRewardsBannerOffersScrollTableViewCell.xib in Resources */, | 837 | 1EB4F4252DE09AAC00D934C0 /* MyRewardsBannerOffersScrollTableViewCell.xib in Resources */, |
824 | 1EA8E5C02DDF427A00CD3418 /* PingLCG-Bold.otf in Resources */, | 838 | 1EA8E5C02DDF427A00CD3418 /* PingLCG-Bold.otf in Resources */, |
839 | + 1E64E1832DE48E0600543217 /* MyRewardsOfferCollectionViewCell.xib in Resources */, | ||
825 | 1EA8E5C12DDF427A00CD3418 /* PingLCG-Light.otf in Resources */, | 840 | 1EA8E5C12DDF427A00CD3418 /* PingLCG-Light.otf in Resources */, |
826 | 1EA8E5C22DDF427A00CD3418 /* PingLCG-Regular.otf in Resources */, | 841 | 1EA8E5C22DDF427A00CD3418 /* PingLCG-Regular.otf in Resources */, |
827 | E6A77908282933E60045BBA8 /* warp_white_close_button@2x.png in Resources */, | 842 | E6A77908282933E60045BBA8 /* warp_white_close_button@2x.png in Resources */, |
... | @@ -886,6 +901,7 @@ | ... | @@ -886,6 +901,7 @@ |
886 | E6A77954282933E70045BBA8 /* MyApi.m in Sources */, | 901 | E6A77954282933E70045BBA8 /* MyApi.m in Sources */, |
887 | E6A778F2282933E60045BBA8 /* WLNativeAdCollectionViewCell.m in Sources */, | 902 | E6A778F2282933E60045BBA8 /* WLNativeAdCollectionViewCell.m in Sources */, |
888 | E6A77904282933E60045BBA8 /* WLEvent.m in Sources */, | 903 | E6A77904282933E60045BBA8 /* WLEvent.m in Sources */, |
904 | + 1E64E1842DE48E0600543217 /* MyRewardsOfferCollectionViewCell.swift in Sources */, | ||
889 | E6A77927282933E70045BBA8 /* UIRefreshControl+AFNetworking.m in Sources */, | 905 | E6A77927282933E70045BBA8 /* UIRefreshControl+AFNetworking.m in Sources */, |
890 | E6A77955282933E70045BBA8 /* ViewControllerExtensions.swift in Sources */, | 906 | E6A77955282933E70045BBA8 /* ViewControllerExtensions.swift in Sources */, |
891 | A07936762885E9CC00064122 /* UIColorExtensions.swift in Sources */, | 907 | A07936762885E9CC00064122 /* UIColorExtensions.swift in Sources */, | ... | ... |
No preview for this file type
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/avis_banner.imageset/Contents.json
0 → 100644
1 | +{ | ||
2 | + "images" : [ | ||
3 | + { | ||
4 | + "filename" : "avis_banner.png", | ||
5 | + "idiom" : "universal", | ||
6 | + "scale" : "1x" | ||
7 | + }, | ||
8 | + { | ||
9 | + "filename" : "avis_banner 1.png", | ||
10 | + "idiom" : "universal", | ||
11 | + "scale" : "2x" | ||
12 | + }, | ||
13 | + { | ||
14 | + "filename" : "avis_banner 2.png", | ||
15 | + "idiom" : "universal", | ||
16 | + "scale" : "3x" | ||
17 | + } | ||
18 | + ], | ||
19 | + "info" : { | ||
20 | + "author" : "xcode", | ||
21 | + "version" : 1 | ||
22 | + } | ||
23 | +} |
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/avis_banner.imageset/avis_banner 1.png
0 → 100644

317 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/avis_banner.imageset/avis_banner 2.png
0 → 100644

317 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/avis_banner.imageset/avis_banner.png
0 → 100644

317 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/avis_logo.imageset/Contents.json
0 → 100644
1 | +{ | ||
2 | + "images" : [ | ||
3 | + { | ||
4 | + "filename" : "avis_logo.png", | ||
5 | + "idiom" : "universal", | ||
6 | + "scale" : "1x" | ||
7 | + }, | ||
8 | + { | ||
9 | + "filename" : "avis_logo 1.png", | ||
10 | + "idiom" : "universal", | ||
11 | + "scale" : "2x" | ||
12 | + }, | ||
13 | + { | ||
14 | + "filename" : "avis_logo 2.png", | ||
15 | + "idiom" : "universal", | ||
16 | + "scale" : "3x" | ||
17 | + } | ||
18 | + ], | ||
19 | + "info" : { | ||
20 | + "author" : "xcode", | ||
21 | + "version" : 1 | ||
22 | + } | ||
23 | +} |
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/avis_logo.imageset/avis_logo 1.png
0 → 100644

3.59 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/avis_logo.imageset/avis_logo 2.png
0 → 100644

3.59 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/avis_logo.imageset/avis_logo.png
0 → 100644

3.59 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/coffeeisland_banner.imageset/Contents.json
0 → 100644
1 | +{ | ||
2 | + "images" : [ | ||
3 | + { | ||
4 | + "filename" : "coffeeisland_banner.png", | ||
5 | + "idiom" : "universal", | ||
6 | + "scale" : "1x" | ||
7 | + }, | ||
8 | + { | ||
9 | + "filename" : "coffeeisland_banner 1.png", | ||
10 | + "idiom" : "universal", | ||
11 | + "scale" : "2x" | ||
12 | + }, | ||
13 | + { | ||
14 | + "filename" : "coffeeisland_banner 2.png", | ||
15 | + "idiom" : "universal", | ||
16 | + "scale" : "3x" | ||
17 | + } | ||
18 | + ], | ||
19 | + "info" : { | ||
20 | + "author" : "xcode", | ||
21 | + "version" : 1 | ||
22 | + } | ||
23 | +} |

114 KB

114 KB

114 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/coffeeisland_logo.imageset/Contents.json
0 → 100644
1 | +{ | ||
2 | + "images" : [ | ||
3 | + { | ||
4 | + "filename" : "coffeeisland_logo.png", | ||
5 | + "idiom" : "universal", | ||
6 | + "scale" : "1x" | ||
7 | + }, | ||
8 | + { | ||
9 | + "filename" : "coffeeisland_logo 1.png", | ||
10 | + "idiom" : "universal", | ||
11 | + "scale" : "2x" | ||
12 | + }, | ||
13 | + { | ||
14 | + "filename" : "coffeeisland_logo 2.png", | ||
15 | + "idiom" : "universal", | ||
16 | + "scale" : "3x" | ||
17 | + } | ||
18 | + ], | ||
19 | + "info" : { | ||
20 | + "author" : "xcode", | ||
21 | + "version" : 1 | ||
22 | + } | ||
23 | +} |

10.3 KB

10.3 KB

10.3 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/dominos_banner.imageset/Contents.json
0 → 100644
1 | +{ | ||
2 | + "images" : [ | ||
3 | + { | ||
4 | + "filename" : "dominos_banner.png", | ||
5 | + "idiom" : "universal", | ||
6 | + "scale" : "1x" | ||
7 | + }, | ||
8 | + { | ||
9 | + "filename" : "dominos_banner 1.png", | ||
10 | + "idiom" : "universal", | ||
11 | + "scale" : "2x" | ||
12 | + }, | ||
13 | + { | ||
14 | + "filename" : "dominos_banner 2.png", | ||
15 | + "idiom" : "universal", | ||
16 | + "scale" : "3x" | ||
17 | + } | ||
18 | + ], | ||
19 | + "info" : { | ||
20 | + "author" : "xcode", | ||
21 | + "version" : 1 | ||
22 | + } | ||
23 | +} |

170 KB

170 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/dominos_banner.imageset/dominos_banner.png
0 → 100644

170 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/dominos_logo.imageset/Contents.json
0 → 100644
1 | +{ | ||
2 | + "images" : [ | ||
3 | + { | ||
4 | + "filename" : "dominos_logo.png", | ||
5 | + "idiom" : "universal", | ||
6 | + "scale" : "1x" | ||
7 | + }, | ||
8 | + { | ||
9 | + "filename" : "dominos_logo 1.png", | ||
10 | + "idiom" : "universal", | ||
11 | + "scale" : "2x" | ||
12 | + }, | ||
13 | + { | ||
14 | + "filename" : "dominos_logo 2.png", | ||
15 | + "idiom" : "universal", | ||
16 | + "scale" : "3x" | ||
17 | + } | ||
18 | + ], | ||
19 | + "info" : { | ||
20 | + "author" : "xcode", | ||
21 | + "version" : 1 | ||
22 | + } | ||
23 | +} |
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/dominos_logo.imageset/dominos_logo 1.png
0 → 100644

6.15 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/dominos_logo.imageset/dominos_logo 2.png
0 → 100644

6.15 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/dominos_logo.imageset/dominos_logo.png
0 → 100644

6.15 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/favorite_empty.imageset/Contents.json
0 → 100644
1 | +{ | ||
2 | + "images" : [ | ||
3 | + { | ||
4 | + "filename" : "favorite_empty.png", | ||
5 | + "idiom" : "universal", | ||
6 | + "scale" : "1x" | ||
7 | + }, | ||
8 | + { | ||
9 | + "filename" : "favorite_empty 1.png", | ||
10 | + "idiom" : "universal", | ||
11 | + "scale" : "2x" | ||
12 | + }, | ||
13 | + { | ||
14 | + "filename" : "favorite_empty 2.png", | ||
15 | + "idiom" : "universal", | ||
16 | + "scale" : "3x" | ||
17 | + } | ||
18 | + ], | ||
19 | + "info" : { | ||
20 | + "author" : "xcode", | ||
21 | + "version" : 1 | ||
22 | + } | ||
23 | +} |

1.68 KB

1.68 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/favorite_empty.imageset/favorite_empty.png
0 → 100644

1.68 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/favorite_filled.imageset/Contents.json
0 → 100644
1 | +{ | ||
2 | + "images" : [ | ||
3 | + { | ||
4 | + "filename" : "favorite_filled.png", | ||
5 | + "idiom" : "universal", | ||
6 | + "scale" : "1x" | ||
7 | + }, | ||
8 | + { | ||
9 | + "filename" : "favorite_filled 1.png", | ||
10 | + "idiom" : "universal", | ||
11 | + "scale" : "2x" | ||
12 | + }, | ||
13 | + { | ||
14 | + "filename" : "favorite_filled 2.png", | ||
15 | + "idiom" : "universal", | ||
16 | + "scale" : "3x" | ||
17 | + } | ||
18 | + ], | ||
19 | + "info" : { | ||
20 | + "author" : "xcode", | ||
21 | + "version" : 1 | ||
22 | + } | ||
23 | +} |

1.47 KB

1.47 KB

1.47 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/migato_banner.imageset/Contents.json
0 → 100644
1 | +{ | ||
2 | + "images" : [ | ||
3 | + { | ||
4 | + "filename" : "migato_banner.png", | ||
5 | + "idiom" : "universal", | ||
6 | + "scale" : "1x" | ||
7 | + }, | ||
8 | + { | ||
9 | + "filename" : "migato_banner 1.png", | ||
10 | + "idiom" : "universal", | ||
11 | + "scale" : "2x" | ||
12 | + }, | ||
13 | + { | ||
14 | + "filename" : "migato_banner 2.png", | ||
15 | + "idiom" : "universal", | ||
16 | + "scale" : "3x" | ||
17 | + } | ||
18 | + ], | ||
19 | + "info" : { | ||
20 | + "author" : "xcode", | ||
21 | + "version" : 1 | ||
22 | + } | ||
23 | +} |
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/migato_banner.imageset/migato_banner 1.png
0 → 100644

154 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/migato_banner.imageset/migato_banner 2.png
0 → 100644

154 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/migato_banner.imageset/migato_banner.png
0 → 100644

154 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/migato_logo.imageset/Contents.json
0 → 100644
1 | +{ | ||
2 | + "images" : [ | ||
3 | + { | ||
4 | + "filename" : "migato_logo.png", | ||
5 | + "idiom" : "universal", | ||
6 | + "scale" : "1x" | ||
7 | + }, | ||
8 | + { | ||
9 | + "filename" : "migato_logo 1.png", | ||
10 | + "idiom" : "universal", | ||
11 | + "scale" : "2x" | ||
12 | + }, | ||
13 | + { | ||
14 | + "filename" : "migato_logo 2.png", | ||
15 | + "idiom" : "universal", | ||
16 | + "scale" : "3x" | ||
17 | + } | ||
18 | + ], | ||
19 | + "info" : { | ||
20 | + "author" : "xcode", | ||
21 | + "version" : 1 | ||
22 | + } | ||
23 | +} |
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/migato_logo.imageset/migato_logo 1.png
0 → 100644

8.51 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/migato_logo.imageset/migato_logo 2.png
0 → 100644

8.51 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/migato_logo.imageset/migato_logo.png
0 → 100644

8.51 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/moustakas_banner.imageset/Contents.json
0 → 100644
1 | +{ | ||
2 | + "images" : [ | ||
3 | + { | ||
4 | + "filename" : "moustakas_banner.png", | ||
5 | + "idiom" : "universal", | ||
6 | + "scale" : "1x" | ||
7 | + }, | ||
8 | + { | ||
9 | + "filename" : "moustakas_banner 1.png", | ||
10 | + "idiom" : "universal", | ||
11 | + "scale" : "2x" | ||
12 | + }, | ||
13 | + { | ||
14 | + "filename" : "moustakas_banner 2.png", | ||
15 | + "idiom" : "universal", | ||
16 | + "scale" : "3x" | ||
17 | + } | ||
18 | + ], | ||
19 | + "info" : { | ||
20 | + "author" : "xcode", | ||
21 | + "version" : 1 | ||
22 | + } | ||
23 | +} |

70.3 KB

70.3 KB

70.3 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/moustakas_logo.imageset/Contents.json
0 → 100644
1 | +{ | ||
2 | + "images" : [ | ||
3 | + { | ||
4 | + "filename" : "moustakas_logo.png", | ||
5 | + "idiom" : "universal", | ||
6 | + "scale" : "1x" | ||
7 | + }, | ||
8 | + { | ||
9 | + "filename" : "moustakas_logo 1.png", | ||
10 | + "idiom" : "universal", | ||
11 | + "scale" : "2x" | ||
12 | + }, | ||
13 | + { | ||
14 | + "filename" : "moustakas_logo 2.png", | ||
15 | + "idiom" : "universal", | ||
16 | + "scale" : "3x" | ||
17 | + } | ||
18 | + ], | ||
19 | + "info" : { | ||
20 | + "author" : "xcode", | ||
21 | + "version" : 1 | ||
22 | + } | ||
23 | +} |

21 KB

21 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/moustakas_logo.imageset/moustakas_logo.png
0 → 100644

21 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/musa_banner.imageset/Contents.json
0 → 100644
1 | +{ | ||
2 | + "images" : [ | ||
3 | + { | ||
4 | + "filename" : "musa_banner.png", | ||
5 | + "idiom" : "universal", | ||
6 | + "scale" : "1x" | ||
7 | + }, | ||
8 | + { | ||
9 | + "filename" : "musa_banner 1.png", | ||
10 | + "idiom" : "universal", | ||
11 | + "scale" : "2x" | ||
12 | + }, | ||
13 | + { | ||
14 | + "filename" : "musa_banner 2.png", | ||
15 | + "idiom" : "universal", | ||
16 | + "scale" : "3x" | ||
17 | + } | ||
18 | + ], | ||
19 | + "info" : { | ||
20 | + "author" : "xcode", | ||
21 | + "version" : 1 | ||
22 | + } | ||
23 | +} |
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/musa_banner.imageset/musa_banner 1.png
0 → 100644

115 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/musa_banner.imageset/musa_banner 2.png
0 → 100644

115 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/musa_banner.imageset/musa_banner.png
0 → 100644

115 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/musa_logo.imageset/Contents.json
0 → 100644
1 | +{ | ||
2 | + "images" : [ | ||
3 | + { | ||
4 | + "filename" : "musa_logo.png", | ||
5 | + "idiom" : "universal", | ||
6 | + "scale" : "1x" | ||
7 | + }, | ||
8 | + { | ||
9 | + "filename" : "musa_logo 1.png", | ||
10 | + "idiom" : "universal", | ||
11 | + "scale" : "2x" | ||
12 | + }, | ||
13 | + { | ||
14 | + "filename" : "musa_logo 2.png", | ||
15 | + "idiom" : "universal", | ||
16 | + "scale" : "3x" | ||
17 | + } | ||
18 | + ], | ||
19 | + "info" : { | ||
20 | + "author" : "xcode", | ||
21 | + "version" : 1 | ||
22 | + } | ||
23 | +} |
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/musa_logo.imageset/musa_logo 1.png
0 → 100644

3.94 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/musa_logo.imageset/musa_logo 2.png
0 → 100644

3.94 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/musa_logo.imageset/musa_logo.png
0 → 100644

3.94 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/ninemia_banner.imageset/Contents.json
0 → 100644
1 | +{ | ||
2 | + "images" : [ | ||
3 | + { | ||
4 | + "filename" : "ninemia_banner.png", | ||
5 | + "idiom" : "universal", | ||
6 | + "scale" : "1x" | ||
7 | + }, | ||
8 | + { | ||
9 | + "filename" : "ninemia_banner 1.png", | ||
10 | + "idiom" : "universal", | ||
11 | + "scale" : "2x" | ||
12 | + }, | ||
13 | + { | ||
14 | + "filename" : "ninemia_banner 2.png", | ||
15 | + "idiom" : "universal", | ||
16 | + "scale" : "3x" | ||
17 | + } | ||
18 | + ], | ||
19 | + "info" : { | ||
20 | + "author" : "xcode", | ||
21 | + "version" : 1 | ||
22 | + } | ||
23 | +} |

170 KB

170 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/ninemia_banner.imageset/ninemia_banner.png
0 → 100644

170 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/ninemia_logo.imageset/Contents.json
0 → 100644
1 | +{ | ||
2 | + "images" : [ | ||
3 | + { | ||
4 | + "filename" : "ninemia_logo.png", | ||
5 | + "idiom" : "universal", | ||
6 | + "scale" : "1x" | ||
7 | + }, | ||
8 | + { | ||
9 | + "filename" : "ninemia_logo 1.png", | ||
10 | + "idiom" : "universal", | ||
11 | + "scale" : "2x" | ||
12 | + }, | ||
13 | + { | ||
14 | + "filename" : "ninemia_logo 2.png", | ||
15 | + "idiom" : "universal", | ||
16 | + "scale" : "3x" | ||
17 | + } | ||
18 | + ], | ||
19 | + "info" : { | ||
20 | + "author" : "xcode", | ||
21 | + "version" : 1 | ||
22 | + } | ||
23 | +} |
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/ninemia_logo.imageset/ninemia_logo 1.png
0 → 100644

6.53 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/ninemia_logo.imageset/ninemia_logo 2.png
0 → 100644

6.53 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/ninemia_logo.imageset/ninemia_logo.png
0 → 100644

6.53 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/ranch_banner.imageset/Contents.json
0 → 100644
1 | +{ | ||
2 | + "images" : [ | ||
3 | + { | ||
4 | + "filename" : "ranch_banner.png", | ||
5 | + "idiom" : "universal", | ||
6 | + "scale" : "1x" | ||
7 | + }, | ||
8 | + { | ||
9 | + "filename" : "ranch_banner 1.png", | ||
10 | + "idiom" : "universal", | ||
11 | + "scale" : "2x" | ||
12 | + }, | ||
13 | + { | ||
14 | + "filename" : "ranch_banner 2.png", | ||
15 | + "idiom" : "universal", | ||
16 | + "scale" : "3x" | ||
17 | + } | ||
18 | + ], | ||
19 | + "info" : { | ||
20 | + "author" : "xcode", | ||
21 | + "version" : 1 | ||
22 | + } | ||
23 | +} |
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/ranch_banner.imageset/ranch_banner 1.png
0 → 100644

160 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/ranch_banner.imageset/ranch_banner 2.png
0 → 100644

160 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/ranch_banner.imageset/ranch_banner.png
0 → 100644

160 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/ranch_logo.imageset/Contents.json
0 → 100644
1 | +{ | ||
2 | + "images" : [ | ||
3 | + { | ||
4 | + "filename" : "ranch_logo.png", | ||
5 | + "idiom" : "universal", | ||
6 | + "scale" : "1x" | ||
7 | + }, | ||
8 | + { | ||
9 | + "filename" : "ranch_logo 1.png", | ||
10 | + "idiom" : "universal", | ||
11 | + "scale" : "2x" | ||
12 | + }, | ||
13 | + { | ||
14 | + "filename" : "ranch_logo 2.png", | ||
15 | + "idiom" : "universal", | ||
16 | + "scale" : "3x" | ||
17 | + } | ||
18 | + ], | ||
19 | + "info" : { | ||
20 | + "author" : "xcode", | ||
21 | + "version" : 1 | ||
22 | + } | ||
23 | +} |
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/ranch_logo.imageset/ranch_logo 1.png
0 → 100644

10.2 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/ranch_logo.imageset/ranch_logo 2.png
0 → 100644

10.2 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/ranch_logo.imageset/ranch_logo.png
0 → 100644

10.2 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/zuccherino_banner.imageset/Contents.json
0 → 100644
1 | +{ | ||
2 | + "images" : [ | ||
3 | + { | ||
4 | + "filename" : "zuccherino_banner.png", | ||
5 | + "idiom" : "universal", | ||
6 | + "scale" : "1x" | ||
7 | + }, | ||
8 | + { | ||
9 | + "filename" : "zuccherino_banner 1.png", | ||
10 | + "idiom" : "universal", | ||
11 | + "scale" : "2x" | ||
12 | + }, | ||
13 | + { | ||
14 | + "filename" : "zuccherino_banner 2.png", | ||
15 | + "idiom" : "universal", | ||
16 | + "scale" : "3x" | ||
17 | + } | ||
18 | + ], | ||
19 | + "info" : { | ||
20 | + "author" : "xcode", | ||
21 | + "version" : 1 | ||
22 | + } | ||
23 | +} |

144 KB

144 KB

144 KB
SwiftWarplyFramework/SwiftWarplyFramework/Media.xcassets/zuccherino_logo.imageset/Contents.json
0 → 100644
1 | +{ | ||
2 | + "images" : [ | ||
3 | + { | ||
4 | + "filename" : "zuccherino_logo.png", | ||
5 | + "idiom" : "universal", | ||
6 | + "scale" : "1x" | ||
7 | + }, | ||
8 | + { | ||
9 | + "filename" : "zuccherino_logo 1.png", | ||
10 | + "idiom" : "universal", | ||
11 | + "scale" : "2x" | ||
12 | + }, | ||
13 | + { | ||
14 | + "filename" : "zuccherino_logo 2.png", | ||
15 | + "idiom" : "universal", | ||
16 | + "scale" : "3x" | ||
17 | + } | ||
18 | + ], | ||
19 | + "info" : { | ||
20 | + "author" : "xcode", | ||
21 | + "version" : 1 | ||
22 | + } | ||
23 | +} |

5.49 KB

5.49 KB

5.49 KB
1 | +// | ||
2 | +// MyRewardsOfferCollectionViewCell.swift | ||
3 | +// SwiftWarplyFramework | ||
4 | +// | ||
5 | +// Created by Manos Chorianopoulos on 26/5/25. | ||
6 | +// | ||
7 | + | ||
8 | +import UIKit | ||
9 | + | ||
10 | +@objc public class MyRewardsOfferCollectionViewCell: UICollectionViewCell { | ||
11 | + @IBOutlet weak var parentView: UIView! | ||
12 | + @IBOutlet weak var bannerImage: UIImageView! | ||
13 | + @IBOutlet weak var favoriteImage: UIImageView! | ||
14 | + @IBOutlet weak var discountView: UIView! | ||
15 | + @IBOutlet weak var discountLabel: UILabel! | ||
16 | + @IBOutlet weak var titleLabel: UILabel! | ||
17 | + @IBOutlet weak var subtitleLabel: UILabel! | ||
18 | + @IBOutlet weak var expirationLabel: UILabel! | ||
19 | + @IBOutlet weak var logoImage: UIImageView! | ||
20 | + | ||
21 | + public override func awakeFromNib() { | ||
22 | + super.awakeFromNib() | ||
23 | + // Initialization code | ||
24 | + | ||
25 | + parentView.layer.borderWidth = 1.0 | ||
26 | + parentView.layer.borderColor = UIColor(rgb: 0xCCCCCC).cgColor | ||
27 | + parentView.layer.cornerRadius = 8.0 | ||
28 | + | ||
29 | + discountView.layer.cornerRadius = 34.0 | ||
30 | + | ||
31 | + } | ||
32 | + | ||
33 | + func configureCell(data: OfferModel) { | ||
34 | + bannerImage.image = UIImage(named: data.bannerImage, in: MyEmptyClass.resourceBundle(), compatibleWith: nil) | ||
35 | + favoriteImage.image = UIImage(named: data.isFavorite ? "favorite_filled" : "favorite_empty", in: MyEmptyClass.resourceBundle(), compatibleWith: nil) | ||
36 | + | ||
37 | + let discountSymbol = | ||
38 | + data.discountType == "percentage" ? "%" | ||
39 | + : data.discountType == "price" ? "€" | ||
40 | + : data.discountType == "buyOneGetOne" ? "1+1" | ||
41 | + : data.discountType == "free" ? "Δωρεάν" | ||
42 | + : "" | ||
43 | + | ||
44 | + discountLabel.text = "\(data.discount)\(discountSymbol)" | ||
45 | + discountLabel.font = UIFont(name: "PingLCG-Bold", size: 18) | ||
46 | + discountLabel.textColor = UIColor(rgb: 0xF2F2F2) | ||
47 | + | ||
48 | + discountView.backgroundColor = UIColor(rgb: data.color) | ||
49 | + | ||
50 | + titleLabel.text = data.title | ||
51 | + titleLabel.font = UIFont(name: "PingLCG-Bold", size: 17) | ||
52 | + titleLabel.textColor = UIColor(rgb: 0x000F1E) | ||
53 | + | ||
54 | + subtitleLabel.text = data.description | ||
55 | + subtitleLabel.font = UIFont(name: "PingLCG-Regular", size: 14) | ||
56 | + subtitleLabel.textColor = UIColor(rgb: 0x00111B) | ||
57 | + | ||
58 | + expirationLabel.text = data.expirationDate | ||
59 | + expirationLabel.font = UIFont(name: "PingLCG-Regular", size: 13) | ||
60 | + expirationLabel.textColor = UIColor(rgb: 0x00111B) | ||
61 | + | ||
62 | + logoImage.image = UIImage(named: data.merchantLogo, in: MyEmptyClass.resourceBundle(), compatibleWith: nil) | ||
63 | + } | ||
64 | +} |
1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
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"/> | ||
4 | + <dependencies> | ||
5 | + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23084"/> | ||
6 | + <capability name="Safe area layout guides" minToolsVersion="9.0"/> | ||
7 | + <capability name="System colors in document resources" minToolsVersion="11.0"/> | ||
8 | + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> | ||
9 | + </dependencies> | ||
10 | + <objects> | ||
11 | + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> | ||
12 | + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> | ||
13 | + <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" id="gTV-IL-0wX" customClass="MyRewardsOfferCollectionViewCell" customModule="SwiftWarplyFramework" customModuleProvider="target"> | ||
14 | + <rect key="frame" x="0.0" y="0.0" width="268" height="165"/> | ||
15 | + <autoresizingMask key="autoresizingMask"/> | ||
16 | + <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> | ||
17 | + <rect key="frame" x="0.0" y="0.0" width="268" height="165"/> | ||
18 | + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | ||
19 | + <subviews> | ||
20 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="5If-VV-K9F" userLabel="Content View"> | ||
21 | + <rect key="frame" x="0.0" y="0.0" width="268" height="165"/> | ||
22 | + <subviews> | ||
23 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="nG0-KL-IyC" userLabel="Top View"> | ||
24 | + <rect key="frame" x="0.0" y="0.0" width="268" height="64"/> | ||
25 | + <subviews> | ||
26 | + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="gqm-4L-lda"> | ||
27 | + <rect key="frame" x="0.0" y="0.0" width="268" height="64"/> | ||
28 | + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
29 | + </imageView> | ||
30 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="QOx-tV-FfU" userLabel="Fav View"> | ||
31 | + <rect key="frame" x="11" y="11" width="32" height="32"/> | ||
32 | + <subviews> | ||
33 | + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="ejc-b5-x4O"> | ||
34 | + <rect key="frame" x="0.0" y="0.0" width="32" height="32"/> | ||
35 | + </imageView> | ||
36 | + </subviews> | ||
37 | + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
38 | + <constraints> | ||
39 | + <constraint firstAttribute="bottom" secondItem="ejc-b5-x4O" secondAttribute="bottom" id="1dH-yH-qh5"/> | ||
40 | + <constraint firstAttribute="width" constant="32" id="4pY-UM-gMO"/> | ||
41 | + <constraint firstAttribute="height" constant="32" id="DU3-At-Mer"/> | ||
42 | + <constraint firstItem="ejc-b5-x4O" firstAttribute="top" secondItem="QOx-tV-FfU" secondAttribute="top" id="OX3-hg-gxs"/> | ||
43 | + <constraint firstAttribute="trailing" secondItem="ejc-b5-x4O" secondAttribute="trailing" id="bf8-Ox-3RY"/> | ||
44 | + <constraint firstItem="ejc-b5-x4O" firstAttribute="leading" secondItem="QOx-tV-FfU" secondAttribute="leading" id="liF-N2-Su9"/> | ||
45 | + </constraints> | ||
46 | + </view> | ||
47 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ke4-P2-jW4" userLabel="Discount View"> | ||
48 | + <rect key="frame" x="192" y="6" width="68" height="68"/> | ||
49 | + <subviews> | ||
50 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dlB-Ci-f8K"> | ||
51 | + <rect key="frame" x="5" y="23.666666666666671" width="58" height="21"/> | ||
52 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
53 | + <nil key="textColor"/> | ||
54 | + <nil key="highlightedColor"/> | ||
55 | + </label> | ||
56 | + </subviews> | ||
57 | + <color key="backgroundColor" systemColor="systemBackgroundColor"/> | ||
58 | + <constraints> | ||
59 | + <constraint firstAttribute="trailing" secondItem="dlB-Ci-f8K" secondAttribute="trailing" constant="5" id="0Tq-Li-agp"/> | ||
60 | + <constraint firstItem="dlB-Ci-f8K" firstAttribute="leading" secondItem="ke4-P2-jW4" secondAttribute="leading" constant="5" id="117-Tu-LJK"/> | ||
61 | + <constraint firstAttribute="height" constant="68" id="Khe-02-FI3"/> | ||
62 | + <constraint firstItem="dlB-Ci-f8K" firstAttribute="centerY" secondItem="ke4-P2-jW4" secondAttribute="centerY" id="aeh-X3-24S"/> | ||
63 | + <constraint firstAttribute="width" constant="68" id="shl-u3-3uB"/> | ||
64 | + </constraints> | ||
65 | + </view> | ||
66 | + </subviews> | ||
67 | + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
68 | + <constraints> | ||
69 | + <constraint firstItem="QOx-tV-FfU" firstAttribute="top" secondItem="nG0-KL-IyC" secondAttribute="top" constant="11" id="4zB-vJ-bf2"/> | ||
70 | + <constraint firstItem="QOx-tV-FfU" firstAttribute="leading" secondItem="nG0-KL-IyC" secondAttribute="leading" constant="11" id="AmT-7g-TDI"/> | ||
71 | + <constraint firstAttribute="trailing" secondItem="gqm-4L-lda" secondAttribute="trailing" id="CLQ-8R-3v5"/> | ||
72 | + <constraint firstItem="gqm-4L-lda" firstAttribute="leading" secondItem="nG0-KL-IyC" secondAttribute="leading" id="DMQ-RI-Dqo"/> | ||
73 | + <constraint firstAttribute="bottom" secondItem="gqm-4L-lda" secondAttribute="bottom" id="IXr-0J-fEF"/> | ||
74 | + <constraint firstItem="ke4-P2-jW4" firstAttribute="top" secondItem="nG0-KL-IyC" secondAttribute="top" constant="6" id="T5E-w8-e65"/> | ||
75 | + <constraint firstAttribute="trailing" secondItem="ke4-P2-jW4" secondAttribute="trailing" constant="8" id="VcX-22-qep"/> | ||
76 | + <constraint firstItem="gqm-4L-lda" firstAttribute="top" secondItem="nG0-KL-IyC" secondAttribute="top" id="rzs-LV-a8h"/> | ||
77 | + </constraints> | ||
78 | + </view> | ||
79 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="VZh-nd-i9h" userLabel="Bottom View"> | ||
80 | + <rect key="frame" x="14" y="64" width="254" height="101"/> | ||
81 | + <subviews> | ||
82 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="0lx-ek-fAp"> | ||
83 | + <rect key="frame" x="11" y="8" width="148" height="82"/> | ||
84 | + <subviews> | ||
85 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JDi-AY-Oai"> | ||
86 | + <rect key="frame" x="0.0" y="0.0" width="148" height="21"/> | ||
87 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
88 | + <nil key="textColor"/> | ||
89 | + <nil key="highlightedColor"/> | ||
90 | + </label> | ||
91 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="aNz-HU-dYm"> | ||
92 | + <rect key="frame" x="0.0" y="23" width="148" height="20.333333333333329"/> | ||
93 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
94 | + <nil key="textColor"/> | ||
95 | + <nil key="highlightedColor"/> | ||
96 | + </label> | ||
97 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bIt-Gd-bbg"> | ||
98 | + <rect key="frame" x="0.0" y="61" width="148" height="21"/> | ||
99 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
100 | + <nil key="textColor"/> | ||
101 | + <nil key="highlightedColor"/> | ||
102 | + </label> | ||
103 | + </subviews> | ||
104 | + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
105 | + <constraints> | ||
106 | + <constraint firstItem="aNz-HU-dYm" firstAttribute="leading" secondItem="0lx-ek-fAp" secondAttribute="leading" id="8qd-OV-cVK"/> | ||
107 | + <constraint firstAttribute="trailing" secondItem="bIt-Gd-bbg" secondAttribute="trailing" id="ANc-af-4O6"/> | ||
108 | + <constraint firstAttribute="trailing" secondItem="aNz-HU-dYm" secondAttribute="trailing" id="Ezo-zF-W2F"/> | ||
109 | + <constraint firstItem="aNz-HU-dYm" firstAttribute="top" secondItem="JDi-AY-Oai" secondAttribute="bottom" constant="2" id="MXk-Ps-ltc"/> | ||
110 | + <constraint firstItem="bIt-Gd-bbg" firstAttribute="leading" secondItem="0lx-ek-fAp" secondAttribute="leading" id="Zb6-Vg-OH8"/> | ||
111 | + <constraint firstAttribute="bottom" secondItem="bIt-Gd-bbg" secondAttribute="bottom" id="a0i-bg-TcH"/> | ||
112 | + <constraint firstAttribute="trailing" secondItem="JDi-AY-Oai" secondAttribute="trailing" id="g3w-US-YLe"/> | ||
113 | + <constraint firstItem="JDi-AY-Oai" firstAttribute="leading" secondItem="0lx-ek-fAp" secondAttribute="leading" id="leM-fr-NSp"/> | ||
114 | + <constraint firstItem="JDi-AY-Oai" firstAttribute="top" secondItem="0lx-ek-fAp" secondAttribute="top" id="w9N-lK-j12"/> | ||
115 | + </constraints> | ||
116 | + </view> | ||
117 | + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="3me-Qd-ALg"> | ||
118 | + <rect key="frame" x="177" y="13" width="59" height="59"/> | ||
119 | + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
120 | + <constraints> | ||
121 | + <constraint firstAttribute="height" constant="59" id="Ij1-x5-I27"/> | ||
122 | + <constraint firstAttribute="width" constant="59" id="mF8-ON-pDd"/> | ||
123 | + </constraints> | ||
124 | + </imageView> | ||
125 | + </subviews> | ||
126 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
127 | + <constraints> | ||
128 | + <constraint firstAttribute="bottom" secondItem="0lx-ek-fAp" secondAttribute="bottom" constant="11" id="2fO-c7-8Tu"/> | ||
129 | + <constraint firstAttribute="trailing" secondItem="3me-Qd-ALg" secondAttribute="trailing" constant="18" id="Cz1-Kr-217"/> | ||
130 | + <constraint firstItem="3me-Qd-ALg" firstAttribute="leading" secondItem="0lx-ek-fAp" secondAttribute="trailing" constant="18" id="EuN-os-tZW"/> | ||
131 | + <constraint firstItem="0lx-ek-fAp" firstAttribute="leading" secondItem="VZh-nd-i9h" secondAttribute="leading" constant="11" id="RnP-Ni-5Af"/> | ||
132 | + <constraint firstItem="0lx-ek-fAp" firstAttribute="top" secondItem="VZh-nd-i9h" secondAttribute="top" constant="8" id="WBh-0n-aCZ"/> | ||
133 | + <constraint firstAttribute="height" constant="101" id="n4I-v3-1hF"/> | ||
134 | + <constraint firstItem="3me-Qd-ALg" firstAttribute="top" secondItem="VZh-nd-i9h" secondAttribute="top" constant="13" id="uCb-Pr-pXa"/> | ||
135 | + </constraints> | ||
136 | + </view> | ||
137 | + </subviews> | ||
138 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
139 | + <constraints> | ||
140 | + <constraint firstAttribute="bottom" secondItem="VZh-nd-i9h" secondAttribute="bottom" id="0Kf-vE-Wru"/> | ||
141 | + <constraint firstAttribute="trailing" secondItem="nG0-KL-IyC" secondAttribute="trailing" id="3PK-aE-vjr"/> | ||
142 | + <constraint firstItem="VZh-nd-i9h" firstAttribute="top" secondItem="nG0-KL-IyC" secondAttribute="bottom" id="7xf-0u-A8S"/> | ||
143 | + <constraint firstItem="VZh-nd-i9h" firstAttribute="leading" secondItem="5If-VV-K9F" secondAttribute="leading" constant="14" id="P5a-2H-UoS"/> | ||
144 | + <constraint firstAttribute="trailing" secondItem="VZh-nd-i9h" secondAttribute="trailing" id="dzM-oX-xd7"/> | ||
145 | + <constraint firstItem="nG0-KL-IyC" firstAttribute="top" secondItem="5If-VV-K9F" secondAttribute="top" id="l7a-R3-Wjx"/> | ||
146 | + <constraint firstItem="nG0-KL-IyC" firstAttribute="leading" secondItem="5If-VV-K9F" secondAttribute="leading" id="vz8-lp-dsA"/> | ||
147 | + </constraints> | ||
148 | + </view> | ||
149 | + </subviews> | ||
150 | + </view> | ||
151 | + <viewLayoutGuide key="safeArea" id="ZTg-uK-7eu"/> | ||
152 | + <constraints> | ||
153 | + <constraint firstAttribute="trailing" secondItem="5If-VV-K9F" secondAttribute="trailing" id="21k-Bp-9O4"/> | ||
154 | + <constraint firstItem="5If-VV-K9F" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" id="358-Xe-h2e"/> | ||
155 | + <constraint firstAttribute="bottom" secondItem="5If-VV-K9F" secondAttribute="bottom" id="7k0-yl-lNT"/> | ||
156 | + <constraint firstItem="5If-VV-K9F" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" id="Lxt-A4-pdv"/> | ||
157 | + </constraints> | ||
158 | + <size key="customSize" width="268" height="165"/> | ||
159 | + <connections> | ||
160 | + <outlet property="bannerImage" destination="gqm-4L-lda" id="WN0-B1-HnE"/> | ||
161 | + <outlet property="discountLabel" destination="dlB-Ci-f8K" id="61M-80-ZVn"/> | ||
162 | + <outlet property="discountView" destination="ke4-P2-jW4" id="D3r-DU-k8r"/> | ||
163 | + <outlet property="expirationLabel" destination="bIt-Gd-bbg" id="N5o-l5-BQT"/> | ||
164 | + <outlet property="favoriteImage" destination="ejc-b5-x4O" id="7At-Oz-6oi"/> | ||
165 | + <outlet property="logoImage" destination="3me-Qd-ALg" id="2CP-5c-EOZ"/> | ||
166 | + <outlet property="parentView" destination="5If-VV-K9F" id="rf7-LY-eKM"/> | ||
167 | + <outlet property="subtitleLabel" destination="aNz-HU-dYm" id="rVw-x5-n1G"/> | ||
168 | + <outlet property="titleLabel" destination="JDi-AY-Oai" id="Vm0-vf-hgz"/> | ||
169 | + </connections> | ||
170 | + <point key="canvasLocation" x="151.14503816793894" y="29.225352112676056"/> | ||
171 | + </collectionViewCell> | ||
172 | + </objects> | ||
173 | + <resources> | ||
174 | + <systemColor name="systemBackgroundColor"> | ||
175 | + <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
176 | + </systemColor> | ||
177 | + </resources> | ||
178 | +</document> |
... | @@ -8,11 +8,57 @@ | ... | @@ -8,11 +8,57 @@ |
8 | import UIKit | 8 | import UIKit |
9 | 9 | ||
10 | @objc public class MyRewardsOffersScrollTableViewCell: UITableViewCell { | 10 | @objc public class MyRewardsOffersScrollTableViewCell: UITableViewCell { |
11 | - var section: SectionModel? | 11 | + @IBOutlet weak var categoryLabel: UILabel! |
12 | + @IBOutlet weak var allButtonView: UIView! | ||
13 | + @IBOutlet weak var allButtonLabel: UILabel! | ||
14 | + @IBOutlet weak var collectionView: UICollectionView! | ||
15 | + | ||
16 | + var data: SectionModel? | ||
12 | 17 | ||
13 | public override func awakeFromNib() { | 18 | public override func awakeFromNib() { |
14 | super.awakeFromNib() | 19 | super.awakeFromNib() |
15 | // Initialization code | 20 | // Initialization code |
21 | + | ||
22 | + allButtonView.layer.borderWidth = 1.0 | ||
23 | + allButtonView.layer.borderColor = UIColor(rgb: 0x000F1E).cgColor | ||
24 | + allButtonView.layer.cornerRadius = 4.0 | ||
25 | + | ||
26 | + allButtonLabel.text = "Όλα" | ||
27 | + allButtonLabel.font = UIFont(name: "PingLCG-Regular", size: 16) | ||
28 | + allButtonLabel.textColor = UIColor(rgb: 0x00111B) | ||
29 | + | ||
30 | + // Register XIBs for collection view cells | ||
31 | + collectionView.register(UINib(nibName: "MyRewardsBannerOfferCollectionViewCell", bundle: Bundle(for: MyEmptyClass.self)), forCellWithReuseIdentifier: "MyRewardsBannerOfferCollectionViewCell") | ||
32 | + | ||
33 | + // Fix background colors | ||
34 | + collectionView.backgroundColor = UIColor.clear | ||
35 | + self.backgroundColor = UIColor.clear | ||
36 | + self.contentView.backgroundColor = UIColor.clear | ||
37 | + | ||
38 | + // Remove content insets and gaps | ||
39 | + collectionView.contentInset = UIEdgeInsets.zero | ||
40 | + collectionView.scrollIndicatorInsets = UIEdgeInsets.zero | ||
41 | + | ||
42 | + if #available(iOS 11.0, *) { | ||
43 | + collectionView.contentInsetAdjustmentBehavior = .never | ||
44 | + } | ||
45 | + | ||
46 | + // Configure collection view layout | ||
47 | + if let layout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout { | ||
48 | + layout.scrollDirection = .horizontal | ||
49 | + layout.minimumLineSpacing = 0 | ||
50 | + layout.minimumInteritemSpacing = 0 | ||
51 | + layout.sectionInset = UIEdgeInsets.zero | ||
52 | + } | ||
53 | + | ||
54 | + // Enable paging for smooth banner scrolling | ||
55 | + collectionView.isPagingEnabled = true | ||
56 | + collectionView.showsHorizontalScrollIndicator = false | ||
57 | + | ||
58 | + // Set delegates | ||
59 | + collectionView.delegate = self | ||
60 | + collectionView.dataSource = self | ||
61 | + | ||
16 | } | 62 | } |
17 | 63 | ||
18 | public override func setSelected(_ selected: Bool, animated: Bool) { | 64 | public override func setSelected(_ selected: Bool, animated: Bool) { |
... | @@ -23,5 +69,73 @@ import UIKit | ... | @@ -23,5 +69,73 @@ import UIKit |
23 | 69 | ||
24 | func configureCell(data: SectionModel?) { | 70 | func configureCell(data: SectionModel?) { |
25 | 71 | ||
72 | +// struct SectionModel { | ||
73 | +// let title: String | ||
74 | +// let count: Int | ||
75 | +// let offers: [OfferModel] | ||
76 | +// } | ||
77 | + | ||
78 | + self.data = data | ||
79 | + | ||
80 | + let catBoldText = (data?.title ?? "") + " " | ||
81 | + let catRegText = String(data?.count ?? 0) | ||
82 | + | ||
83 | + let attrBold = [NSAttributedString.Key.font : UIFont(name: "PingLCG-Bold", size: 18) ?? UIFont.boldSystemFont(ofSize: 17), NSAttributedString.Key.foregroundColor: UIColor(rgb: 0x000F1E)] | ||
84 | + let attrRegular = [NSAttributedString.Key.font : UIFont(name: "PingLCG-Regular", size: 18) ?? UIFont.systemFont(ofSize: 17), NSAttributedString.Key.foregroundColor: UIColor(rgb: 0x000F1E)] | ||
85 | + | ||
86 | + let catAttributedString = NSMutableAttributedString(string:catBoldText, attributes:attrBold) | ||
87 | + let catRegString = NSMutableAttributedString(string: catRegText, attributes:attrRegular) | ||
88 | + | ||
89 | + catAttributedString.append(catRegString) | ||
90 | + categoryLabel.attributedText = catAttributedString | ||
91 | + | ||
92 | + self.collectionView.reloadData(); | ||
93 | + | ||
94 | + } | ||
95 | +} | ||
96 | + | ||
97 | +extension MyRewardsOffersScrollTableViewCell: UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout { | ||
98 | + | ||
99 | + | ||
100 | + public func numberOfSections(in collectionView: UICollectionView) -> Int { | ||
101 | + return 1 | ||
102 | + } | ||
103 | + | ||
104 | + public func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { | ||
105 | + return self.data?.offers.count ?? 0 | ||
106 | + } | ||
107 | + | ||
108 | + public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { | ||
109 | + let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "MyRewardsBannerOfferCollectionViewCell", for: indexPath) as! MyRewardsBannerOfferCollectionViewCell | ||
110 | +// cell.configureCell(offer: self.data?.offers[indexPath.row]) | ||
111 | + if let offer = self.data?.offers[indexPath.row] { | ||
112 | + cell.configureCell(data: offer) | ||
113 | + } | ||
114 | + return cell; | ||
115 | + } | ||
116 | + | ||
117 | + public func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { | ||
118 | +// TODO: open offer | ||
119 | + } | ||
120 | + | ||
121 | + // MARK: - UICollectionViewDelegateFlowLayout | ||
122 | + public func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { | ||
123 | +// let screenWidth = UIScreen.main.bounds.width | ||
124 | + return CGSize(width: 257, height: 232) | ||
125 | + } | ||
126 | + | ||
127 | + // Distance Between Item Cells | ||
128 | + public func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat { | ||
129 | + return 7 | ||
130 | + } | ||
131 | + | ||
132 | + public func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat { | ||
133 | + return 0 | ||
134 | + } | ||
135 | + | ||
136 | + // Cell Margin | ||
137 | + public func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets { | ||
138 | + return UIEdgeInsets.zero | ||
139 | +// UIEdgeInsets(top: 0, left: 7, bottom: 0, right: 0) | ||
26 | } | 140 | } |
27 | } | 141 | } | ... | ... |
... | @@ -9,16 +9,114 @@ | ... | @@ -9,16 +9,114 @@ |
9 | <objects> | 9 | <objects> |
10 | <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> | 10 | <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> |
11 | <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> | 11 | <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> |
12 | - <tableViewCell contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="MyRewardsOffersScrollTableViewCell" id="KGk-i7-Jjw" customClass="MyRewardsOffersScrollTableViewCell" customModule="SwiftWarplyFramework" customModuleProvider="target"> | 12 | + <tableViewCell contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="MyRewardsOffersScrollTableViewCell" rowHeight="265" id="KGk-i7-Jjw" customClass="MyRewardsOffersScrollTableViewCell" customModule="SwiftWarplyFramework" customModuleProvider="target"> |
13 | - <rect key="frame" x="0.0" y="0.0" width="320" height="44"/> | 13 | + <rect key="frame" x="0.0" y="0.0" width="403" height="265"/> |
14 | <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | 14 | <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> |
15 | - <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM"> | 15 | + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" ambiguous="YES" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM"> |
16 | - <rect key="frame" x="0.0" y="0.0" width="320" height="44"/> | 16 | + <rect key="frame" x="0.0" y="0.0" width="403" height="265"/> |
17 | <autoresizingMask key="autoresizingMask"/> | 17 | <autoresizingMask key="autoresizingMask"/> |
18 | + <subviews> | ||
19 | + <view contentMode="scaleToFill" ambiguous="YES" translatesAutoresizingMaskIntoConstraints="NO" id="3yR-f0-cq6" userLabel="Parent View"> | ||
20 | + <rect key="frame" x="0.0" y="-127" width="403" height="298"/> | ||
21 | + <subviews> | ||
22 | + <view contentMode="scaleToFill" ambiguous="YES" translatesAutoresizingMaskIntoConstraints="NO" id="iQa-jk-pTS" userLabel="Top View"> | ||
23 | + <rect key="frame" x="24" y="60" width="355" height="35"/> | ||
24 | + <subviews> | ||
25 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2GN-Th-7DN"> | ||
26 | + <rect key="frame" x="0.0" y="7" width="270" height="21"/> | ||
27 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
28 | + <nil key="textColor"/> | ||
29 | + <nil key="highlightedColor"/> | ||
30 | + </label> | ||
31 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9Qp-M4-KdO"> | ||
32 | + <rect key="frame" x="280" y="0.0" width="75" height="35"/> | ||
33 | + <subviews> | ||
34 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Όλα" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KGA-M6-mox"> | ||
35 | + <rect key="frame" x="17" y="7" width="41" height="21"/> | ||
36 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
37 | + <nil key="textColor"/> | ||
38 | + <nil key="highlightedColor"/> | ||
39 | + </label> | ||
40 | + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="3xd-DO-x7D"> | ||
41 | + <rect key="frame" x="0.0" y="0.0" width="75" height="35"/> | ||
42 | + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
43 | + <state key="normal" title="Button"/> | ||
44 | + <buttonConfiguration key="configuration" style="plain" title="Button"> | ||
45 | + <color key="baseForegroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
46 | + </buttonConfiguration> | ||
47 | + </button> | ||
48 | + </subviews> | ||
49 | + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
50 | + <constraints> | ||
51 | + <constraint firstAttribute="trailing" secondItem="3xd-DO-x7D" secondAttribute="trailing" id="JPz-In-GKK"/> | ||
52 | + <constraint firstItem="3xd-DO-x7D" firstAttribute="top" secondItem="9Qp-M4-KdO" secondAttribute="top" id="Tja-OQ-C2l"/> | ||
53 | + <constraint firstItem="KGA-M6-mox" firstAttribute="leading" secondItem="9Qp-M4-KdO" secondAttribute="leading" constant="17" id="VmX-L4-pUZ"/> | ||
54 | + <constraint firstItem="KGA-M6-mox" firstAttribute="top" secondItem="9Qp-M4-KdO" secondAttribute="top" constant="7" id="Wfv-az-eWF"/> | ||
55 | + <constraint firstItem="3xd-DO-x7D" firstAttribute="leading" secondItem="9Qp-M4-KdO" secondAttribute="leading" id="a6e-3u-98H"/> | ||
56 | + <constraint firstAttribute="bottom" secondItem="KGA-M6-mox" secondAttribute="bottom" constant="7" id="e7a-OL-xbA"/> | ||
57 | + <constraint firstAttribute="trailing" secondItem="KGA-M6-mox" secondAttribute="trailing" constant="17" id="eK1-vy-dDM"/> | ||
58 | + <constraint firstAttribute="bottom" secondItem="3xd-DO-x7D" secondAttribute="bottom" id="xGA-AA-7JP"/> | ||
59 | + </constraints> | ||
60 | + </view> | ||
61 | + </subviews> | ||
62 | + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
63 | + <constraints> | ||
64 | + <constraint firstAttribute="bottom" secondItem="9Qp-M4-KdO" secondAttribute="bottom" id="DJk-cb-lzX"/> | ||
65 | + <constraint firstAttribute="trailing" secondItem="9Qp-M4-KdO" secondAttribute="trailing" id="E5b-4E-onH"/> | ||
66 | + <constraint firstItem="9Qp-M4-KdO" firstAttribute="leading" secondItem="2GN-Th-7DN" secondAttribute="trailing" constant="10" id="ESz-J3-ppp"/> | ||
67 | + <constraint firstItem="9Qp-M4-KdO" firstAttribute="top" secondItem="iQa-jk-pTS" secondAttribute="top" id="GyS-sa-4pe"/> | ||
68 | + <constraint firstItem="2GN-Th-7DN" firstAttribute="centerY" secondItem="iQa-jk-pTS" secondAttribute="centerY" id="ZIk-to-Cme"/> | ||
69 | + <constraint firstItem="2GN-Th-7DN" firstAttribute="leading" secondItem="iQa-jk-pTS" secondAttribute="leading" id="j55-YX-1uu"/> | ||
70 | + </constraints> | ||
71 | + </view> | ||
72 | + <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" ambiguous="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="E9Q-uB-Uvd"> | ||
73 | + <rect key="frame" x="0.0" y="100" width="403" height="232"/> | ||
74 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
75 | + <constraints> | ||
76 | + <constraint firstAttribute="height" constant="232" id="kSx-su-PE4"/> | ||
77 | + </constraints> | ||
78 | + <collectionViewFlowLayout key="collectionViewLayout" scrollDirection="horizontal" automaticEstimatedItemSize="YES" minimumLineSpacing="5" minimumInteritemSpacing="5" id="fEo-FG-gpQ"> | ||
79 | + <size key="itemSize" width="128" height="120"/> | ||
80 | + <size key="headerReferenceSize" width="0.0" height="0.0"/> | ||
81 | + <size key="footerReferenceSize" width="0.0" height="0.0"/> | ||
82 | + <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/> | ||
83 | + </collectionViewFlowLayout> | ||
84 | + <cells/> | ||
85 | + <connections> | ||
86 | + <outlet property="dataSource" destination="KGk-i7-Jjw" id="jxz-Rh-IWI"/> | ||
87 | + <outlet property="delegate" destination="KGk-i7-Jjw" id="Kbe-g1-Imx"/> | ||
88 | + </connections> | ||
89 | + </collectionView> | ||
90 | + </subviews> | ||
91 | + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
92 | + <constraints> | ||
93 | + <constraint firstItem="E9Q-uB-Uvd" firstAttribute="top" secondItem="iQa-jk-pTS" secondAttribute="bottom" constant="5" id="BbT-IJ-sg4"/> | ||
94 | + <constraint firstItem="iQa-jk-pTS" firstAttribute="leading" secondItem="3yR-f0-cq6" secondAttribute="leading" constant="24" id="C0X-4S-oP1"/> | ||
95 | + <constraint firstAttribute="trailing" secondItem="E9Q-uB-Uvd" secondAttribute="trailing" id="KNV-Sk-0rr"/> | ||
96 | + <constraint firstItem="iQa-jk-pTS" firstAttribute="top" secondItem="3yR-f0-cq6" secondAttribute="top" constant="60" id="Saf-QC-O71"/> | ||
97 | + <constraint firstItem="E9Q-uB-Uvd" firstAttribute="leading" secondItem="3yR-f0-cq6" secondAttribute="leading" id="ToF-ce-EMM"/> | ||
98 | + <constraint firstAttribute="bottom" secondItem="E9Q-uB-Uvd" secondAttribute="bottom" id="ssj-8N-2gP"/> | ||
99 | + <constraint firstAttribute="trailing" secondItem="iQa-jk-pTS" secondAttribute="trailing" constant="24" id="zI6-rP-3kk"/> | ||
100 | + </constraints> | ||
101 | + </view> | ||
102 | + </subviews> | ||
103 | + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
104 | + <constraints> | ||
105 | + <constraint firstItem="3yR-f0-cq6" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="DsP-BH-dA4"/> | ||
106 | + <constraint firstAttribute="bottom" secondItem="3yR-f0-cq6" secondAttribute="bottom" id="F3o-0K-6MW"/> | ||
107 | + <constraint firstItem="3yR-f0-cq6" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" id="ezZ-G1-pq2"/> | ||
108 | + <constraint firstAttribute="trailing" secondItem="3yR-f0-cq6" secondAttribute="trailing" id="nH3-Xd-I3V"/> | ||
109 | + </constraints> | ||
18 | </tableViewCellContentView> | 110 | </tableViewCellContentView> |
19 | <viewLayoutGuide key="safeArea" id="njF-e1-oar"/> | 111 | <viewLayoutGuide key="safeArea" id="njF-e1-oar"/> |
20 | <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | 112 | <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
21 | - <point key="canvasLocation" x="37" y="-11"/> | 113 | + <connections> |
114 | + <outlet property="allButtonLabel" destination="KGA-M6-mox" id="34J-92-2Fb"/> | ||
115 | + <outlet property="allButtonView" destination="9Qp-M4-KdO" id="dwb-fV-WAm"/> | ||
116 | + <outlet property="categoryLabel" destination="2GN-Th-7DN" id="wGT-fB-Ktd"/> | ||
117 | + <outlet property="collectionView" destination="E9Q-uB-Uvd" id="qi5-nL-UzB"/> | ||
118 | + </connections> | ||
119 | + <point key="canvasLocation" x="-69.465648854961827" y="-23.591549295774648"/> | ||
22 | </tableViewCell> | 120 | </tableViewCell> |
23 | </objects> | 121 | </objects> |
24 | </document> | 122 | </document> | ... | ... |
... | @@ -22,7 +22,7 @@ struct OfferModel { | ... | @@ -22,7 +22,7 @@ struct OfferModel { |
22 | let bannerImage: String | 22 | let bannerImage: String |
23 | let merchantLogo: String | 23 | let merchantLogo: String |
24 | let expirationDate: String | 24 | let expirationDate: String |
25 | - let color: String | 25 | + let color: UInt |
26 | var isFavorite: Bool | 26 | var isFavorite: Bool |
27 | } | 27 | } |
28 | 28 | ||
... | @@ -41,7 +41,7 @@ struct OfferModel { | ... | @@ -41,7 +41,7 @@ struct OfferModel { |
41 | bannerImage: "contest_banner", | 41 | bannerImage: "contest_banner", |
42 | merchantLogo: "contest_logo", | 42 | merchantLogo: "contest_logo", |
43 | expirationDate: "30/06/2025", | 43 | expirationDate: "30/06/2025", |
44 | - color: "#8A2BE2", // Purple | 44 | + color: 0x8A2BE2, |
45 | isFavorite: false | 45 | isFavorite: false |
46 | ), | 46 | ), |
47 | OfferModel( | 47 | OfferModel( |
... | @@ -53,7 +53,7 @@ struct OfferModel { | ... | @@ -53,7 +53,7 @@ struct OfferModel { |
53 | bannerImage: "contest_banner", | 53 | bannerImage: "contest_banner", |
54 | merchantLogo: "contest_logo", | 54 | merchantLogo: "contest_logo", |
55 | expirationDate: "30/06/2025", | 55 | expirationDate: "30/06/2025", |
56 | - color: "#8A2BE2", // Purple | 56 | + color: 0x8A2BE2, |
57 | isFavorite: false | 57 | isFavorite: false |
58 | ), | 58 | ), |
59 | OfferModel( | 59 | OfferModel( |
... | @@ -65,7 +65,7 @@ struct OfferModel { | ... | @@ -65,7 +65,7 @@ struct OfferModel { |
65 | bannerImage: "contest_banner", | 65 | bannerImage: "contest_banner", |
66 | merchantLogo: "contest_logo", | 66 | merchantLogo: "contest_logo", |
67 | expirationDate: "30/06/2025", | 67 | expirationDate: "30/06/2025", |
68 | - color: "#8A2BE2", // Purple | 68 | + color: 0x8A2BE2, |
69 | isFavorite: false | 69 | isFavorite: false |
70 | ), | 70 | ), |
71 | // Top offers | 71 | // Top offers |
... | @@ -78,7 +78,7 @@ struct OfferModel { | ... | @@ -78,7 +78,7 @@ struct OfferModel { |
78 | bannerImage: "pizza_banner", | 78 | bannerImage: "pizza_banner", |
79 | merchantLogo: "dominos_logo", | 79 | merchantLogo: "dominos_logo", |
80 | expirationDate: "έως 30/09", | 80 | expirationDate: "έως 30/09", |
81 | - color: "#E91E63", // Pink | 81 | + color: 0xEE417D, |
82 | isFavorite: true | 82 | isFavorite: true |
83 | ), | 83 | ), |
84 | OfferModel( | 84 | OfferModel( |
... | @@ -90,7 +90,7 @@ struct OfferModel { | ... | @@ -90,7 +90,7 @@ struct OfferModel { |
90 | bannerImage: "furniture_banner", | 90 | bannerImage: "furniture_banner", |
91 | merchantLogo: "ikea_logo", | 91 | merchantLogo: "ikea_logo", |
92 | expirationDate: "έως 30/09", | 92 | expirationDate: "έως 30/09", |
93 | - color: "#E91E63", // Pink | 93 | + color: 0xEE417D, |
94 | isFavorite: false | 94 | isFavorite: false |
95 | ), | 95 | ), |
96 | // OfferModel( | 96 | // OfferModel( |
... | @@ -102,7 +102,7 @@ struct OfferModel { | ... | @@ -102,7 +102,7 @@ struct OfferModel { |
102 | // bannerImage: "delivery_banner", | 102 | // bannerImage: "delivery_banner", |
103 | // merchantLogo: "skroutz_logo", | 103 | // merchantLogo: "skroutz_logo", |
104 | // expirationDate: "έως 30/09", | 104 | // expirationDate: "έως 30/09", |
105 | - // color: "#E91E63", // Pink | 105 | + // color: 0xEE417D, |
106 | // isFavorite: false | 106 | // isFavorite: false |
107 | // ), | 107 | // ), |
108 | 108 | ||
... | @@ -116,7 +116,7 @@ struct OfferModel { | ... | @@ -116,7 +116,7 @@ struct OfferModel { |
116 | // bannerImage: "car_rental_banner", | 116 | // bannerImage: "car_rental_banner", |
117 | // merchantLogo: "avis_logo", | 117 | // merchantLogo: "avis_logo", |
118 | // expirationDate: "έως 30/09", | 118 | // expirationDate: "έως 30/09", |
119 | - // color: "#E91E63", // Pink | 119 | + // color: 0xEE417D, |
120 | // isFavorite: true | 120 | // isFavorite: true |
121 | // ), | 121 | // ), |
122 | // OfferModel( | 122 | // OfferModel( |
... | @@ -128,7 +128,7 @@ struct OfferModel { | ... | @@ -128,7 +128,7 @@ struct OfferModel { |
128 | // bannerImage: "hotel_banner", | 128 | // bannerImage: "hotel_banner", |
129 | // merchantLogo: "booking_logo", | 129 | // merchantLogo: "booking_logo", |
130 | // expirationDate: "έως 30/09", | 130 | // expirationDate: "έως 30/09", |
131 | - // color: "#E91E63", // Pink | 131 | + // color: 0xEE417D, |
132 | // isFavorite: true | 132 | // isFavorite: true |
133 | // ), | 133 | // ), |
134 | 134 | ||
... | @@ -139,10 +139,10 @@ struct OfferModel { | ... | @@ -139,10 +139,10 @@ struct OfferModel { |
139 | description: "σε όλα τα προϊόντα", | 139 | description: "σε όλα τα προϊόντα", |
140 | discount: "15%", | 140 | discount: "15%", |
141 | discountType: "percentage", | 141 | discountType: "percentage", |
142 | - bannerImage: "sustainable_fashion_banner", | 142 | + bannerImage: "musa_banner", |
143 | - merchantLogo: "ww_logo", | 143 | + merchantLogo: "musa_logo", |
144 | expirationDate: "έως 30/09", | 144 | expirationDate: "έως 30/09", |
145 | - color: "#4CAF50", // Green | 145 | + color: 0x09914E, |
146 | isFavorite: false | 146 | isFavorite: false |
147 | ), | 147 | ), |
148 | OfferModel( | 148 | OfferModel( |
... | @@ -151,10 +151,10 @@ struct OfferModel { | ... | @@ -151,10 +151,10 @@ struct OfferModel { |
151 | description: "στην παραγγελία", | 151 | description: "στην παραγγελία", |
152 | discount: "20%", | 152 | discount: "20%", |
153 | discountType: "percentage", | 153 | discountType: "percentage", |
154 | - bannerImage: "sustainable_food_banner", | 154 | + bannerImage: "musa_banner", |
155 | - merchantLogo: "biomarket_logo", | 155 | + merchantLogo: "musa_logo", |
156 | expirationDate: "έως 30/09", | 156 | expirationDate: "έως 30/09", |
157 | - color: "#4CAF50", // Green | 157 | + color: 0x09914E, |
158 | isFavorite: true | 158 | isFavorite: true |
159 | ), | 159 | ), |
160 | 160 | ||
... | @@ -168,7 +168,7 @@ struct OfferModel { | ... | @@ -168,7 +168,7 @@ struct OfferModel { |
168 | bannerImage: "ranch_banner", | 168 | bannerImage: "ranch_banner", |
169 | merchantLogo: "ranch_logo", | 169 | merchantLogo: "ranch_logo", |
170 | expirationDate: "έως 30/09", | 170 | expirationDate: "έως 30/09", |
171 | - color: "#FF9800", // Orange | 171 | + color: 0xFC9F25, |
172 | isFavorite: false | 172 | isFavorite: false |
173 | ), | 173 | ), |
174 | OfferModel( | 174 | OfferModel( |
... | @@ -177,10 +177,10 @@ struct OfferModel { | ... | @@ -177,10 +177,10 @@ struct OfferModel { |
177 | description: "δώρο στην είσοδο του παιδότοπου", | 177 | description: "δώρο στην είσοδο του παιδότοπου", |
178 | discount: "1+1", | 178 | discount: "1+1", |
179 | discountType: "buyOneGetOne", | 179 | discountType: "buyOneGetOne", |
180 | - bannerImage: "playground_banner", | 180 | + bannerImage: "ranch_banner", |
181 | - merchantLogo: "playground_logo", | 181 | + merchantLogo: "ranch_logo", |
182 | expirationDate: "έως 30/09", | 182 | expirationDate: "έως 30/09", |
183 | - color: "#FF9800", // Orange | 183 | + color: 0xFC9F25, |
184 | isFavorite: false | 184 | isFavorite: false |
185 | ), | 185 | ), |
186 | 186 | ||
... | @@ -191,10 +191,10 @@ struct OfferModel { | ... | @@ -191,10 +191,10 @@ struct OfferModel { |
191 | description: "στην αγορά σου", | 191 | description: "στην αγορά σου", |
192 | discount: "2€", | 192 | discount: "2€", |
193 | discountType: "amount", | 193 | discountType: "amount", |
194 | - bannerImage: "coffee_banner", | 194 | + bannerImage: "coffeeisland_banner", |
195 | - merchantLogo: "mikel_logo", | 195 | + merchantLogo: "coffeeisland_logo", |
196 | expirationDate: "έως 30/09", | 196 | expirationDate: "έως 30/09", |
197 | - color: "#F44336", // Red | 197 | + color: 0xEE417D, |
198 | isFavorite: false | 198 | isFavorite: false |
199 | ), | 199 | ), |
200 | OfferModel( | 200 | OfferModel( |
... | @@ -203,10 +203,10 @@ struct OfferModel { | ... | @@ -203,10 +203,10 @@ struct OfferModel { |
203 | description: "σε γλυκά & πεϊνιρλιδες", | 203 | description: "σε γλυκά & πεϊνιρλιδες", |
204 | discount: "10%", | 204 | discount: "10%", |
205 | discountType: "percentage", | 205 | discountType: "percentage", |
206 | - bannerImage: "pastry_banner", | 206 | + bannerImage: "coffeeisland_banner", |
207 | - merchantLogo: "bakery_logo", | 207 | + merchantLogo: "coffeeisland_logo", |
208 | expirationDate: "έως 30/09", | 208 | expirationDate: "έως 30/09", |
209 | - color: "#F44336", // Red | 209 | + color: 0xEE417D, |
210 | isFavorite: false | 210 | isFavorite: false |
211 | ), | 211 | ), |
212 | 212 | ||
... | @@ -217,10 +217,10 @@ struct OfferModel { | ... | @@ -217,10 +217,10 @@ struct OfferModel { |
217 | description: "στην διαμονή/διασκέδαση σου", | 217 | description: "στην διαμονή/διασκέδαση σου", |
218 | discount: "10%", | 218 | discount: "10%", |
219 | discountType: "percentage", | 219 | discountType: "percentage", |
220 | - bannerImage: "resort_banner", | 220 | + bannerImage: "ninemia_banner", |
221 | - merchantLogo: "agrafa_logo", | 221 | + merchantLogo: "ninemia_logo", |
222 | expirationDate: "έως 30/09", | 222 | expirationDate: "έως 30/09", |
223 | - color: "#2196F3", // Blue | 223 | + color: 0xEE417D, |
224 | isFavorite: true | 224 | isFavorite: true |
225 | ), | 225 | ), |
226 | OfferModel( | 226 | OfferModel( |
... | @@ -229,10 +229,10 @@ struct OfferModel { | ... | @@ -229,10 +229,10 @@ struct OfferModel { |
229 | description: "σε όλες τις υπηρεσίες", | 229 | description: "σε όλες τις υπηρεσίες", |
230 | discount: "10%", | 230 | discount: "10%", |
231 | discountType: "percentage", | 231 | discountType: "percentage", |
232 | - bannerImage: "services_banner", | 232 | + bannerImage: "ninemia_banner", |
233 | - merchantLogo: "services_logo", | 233 | + merchantLogo: "ninemia_logo", |
234 | expirationDate: "έως 30/09", | 234 | expirationDate: "έως 30/09", |
235 | - color: "#2196F3", // Blue | 235 | + color: 0xEE417D, |
236 | isFavorite: false | 236 | isFavorite: false |
237 | ), | 237 | ), |
238 | 238 | ||
... | @@ -243,10 +243,10 @@ struct OfferModel { | ... | @@ -243,10 +243,10 @@ struct OfferModel { |
243 | description: "για αγορές από τα φυσικά καταστήματα", | 243 | description: "για αγορές από τα φυσικά καταστήματα", |
244 | discount: "10%", | 244 | discount: "10%", |
245 | discountType: "percentage", | 245 | discountType: "percentage", |
246 | - bannerImage: "toys_banner", | 246 | + bannerImage: "moustakas_banner", |
247 | - merchantLogo: "jumbo_logo", | 247 | + merchantLogo: "moustakas_logo", |
248 | expirationDate: "έως 30/09", | 248 | expirationDate: "έως 30/09", |
249 | - color: "#9C27B0", // Purple | 249 | + color: 0xEE417D, |
250 | isFavorite: false | 250 | isFavorite: false |
251 | ), | 251 | ), |
252 | OfferModel( | 252 | OfferModel( |
... | @@ -255,10 +255,10 @@ struct OfferModel { | ... | @@ -255,10 +255,10 @@ struct OfferModel { |
255 | description: "στην είσοδο του παιδότοπου", | 255 | description: "στην είσοδο του παιδότοπου", |
256 | discount: "1+1", | 256 | discount: "1+1", |
257 | discountType: "buyOneGetOne", | 257 | discountType: "buyOneGetOne", |
258 | - bannerImage: "playarea_banner", | 258 | + bannerImage: "moustakas_banner", |
259 | - merchantLogo: "playarea_logo", | 259 | + merchantLogo: "moustakas_logo", |
260 | expirationDate: "έως 30/09", | 260 | expirationDate: "έως 30/09", |
261 | - color: "#9C27B0", // Purple | 261 | + color: 0xEE417D, |
262 | isFavorite: false | 262 | isFavorite: false |
263 | ), | 263 | ), |
264 | 264 | ||
... | @@ -269,10 +269,10 @@ struct OfferModel { | ... | @@ -269,10 +269,10 @@ struct OfferModel { |
269 | description: "για αγορές", | 269 | description: "για αγορές", |
270 | discount: "15€", | 270 | discount: "15€", |
271 | discountType: "amount", | 271 | discountType: "amount", |
272 | - bannerImage: "fashion_banner", | 272 | + bannerImage: "migato_banner", |
273 | merchantLogo: "migato_logo", | 273 | merchantLogo: "migato_logo", |
274 | expirationDate: "έως 30/09", | 274 | expirationDate: "έως 30/09", |
275 | - color: "#FF5722", // Deep Orange | 275 | + color: 0xEE417D, |
276 | isFavorite: false | 276 | isFavorite: false |
277 | ), | 277 | ), |
278 | OfferModel( | 278 | OfferModel( |
... | @@ -281,10 +281,10 @@ struct OfferModel { | ... | @@ -281,10 +281,10 @@ struct OfferModel { |
281 | description: "στις αγορές σου", | 281 | description: "στις αγορές σου", |
282 | discount: "Έως 30%", | 282 | discount: "Έως 30%", |
283 | discountType: "percentage", | 283 | discountType: "percentage", |
284 | - bannerImage: "shopping_banner", | 284 | + bannerImage: "migato_banner", |
285 | - merchantLogo: "shopping_logo", | 285 | + merchantLogo: "migato_logo", |
286 | expirationDate: "έως 30/09", | 286 | expirationDate: "έως 30/09", |
287 | - color: "#FF5722", // Deep Orange | 287 | + color: 0xEE417D, |
288 | isFavorite: false | 288 | isFavorite: false |
289 | ) | 289 | ) |
290 | ] | 290 | ] | ... | ... |
-
Please register or login to post a comment