Manos Chorianopoulos

MyRewardsBannerOffersScrollTableViewCell paging added

...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
7 <key>Pods-SwiftWarplyFramework.xcscheme_^#shared#^_</key> 7 <key>Pods-SwiftWarplyFramework.xcscheme_^#shared#^_</key>
8 <dict> 8 <dict>
9 <key>orderHint</key> 9 <key>orderHint</key>
10 - <integer>1</integer> 10 + <integer>0</integer>
11 </dict> 11 </dict>
12 </dict> 12 </dict>
13 </dict> 13 </dict>
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
7 <key>SwiftWarplyFramework.xcscheme_^#shared#^_</key> 7 <key>SwiftWarplyFramework.xcscheme_^#shared#^_</key>
8 <dict> 8 <dict>
9 <key>orderHint</key> 9 <key>orderHint</key>
10 - <integer>0</integer> 10 + <integer>1</integer>
11 </dict> 11 </dict>
12 </dict> 12 </dict>
13 </dict> 13 </dict>
......
...@@ -14,6 +14,7 @@ import UIKit ...@@ -14,6 +14,7 @@ import UIKit
14 @IBOutlet weak var tagLabel2: UILabel! 14 @IBOutlet weak var tagLabel2: UILabel!
15 @IBOutlet weak var profileImage: UIImageView! 15 @IBOutlet weak var profileImage: UIImageView!
16 @IBOutlet weak var collectionView: UICollectionView! 16 @IBOutlet weak var collectionView: UICollectionView!
17 + @IBOutlet weak var pageControl: UIPageControl!
17 18
18 var data: SectionModel? 19 var data: SectionModel?
19 20
...@@ -65,6 +66,12 @@ import UIKit ...@@ -65,6 +66,12 @@ import UIKit
65 // Set delegates 66 // Set delegates
66 collectionView.delegate = self 67 collectionView.delegate = self
67 collectionView.dataSource = self 68 collectionView.dataSource = self
69 +
70 + // Configure page control
71 + pageControl.currentPageIndicatorTintColor = UIColor(rgb: 0xEE437E)
72 + pageControl.pageIndicatorTintColor = UIColor(rgb: 0xD8D8D8)
73 + pageControl.hidesForSinglePage = true
74 + pageControl.isUserInteractionEnabled = false // Disable direct tapping on page control
68 } 75 }
69 76
70 public override func setSelected(_ selected: Bool, animated: Bool) { 77 public override func setSelected(_ selected: Bool, animated: Bool) {
...@@ -75,6 +82,12 @@ import UIKit ...@@ -75,6 +82,12 @@ import UIKit
75 82
76 func configureCell(data: SectionModel?) { 83 func configureCell(data: SectionModel?) {
77 self.data = data 84 self.data = data
85 +
86 + // Configure page control
87 + let numberOfPages = self.data?.offers.count ?? 0
88 + pageControl.numberOfPages = numberOfPages
89 + pageControl.currentPage = 0
90 +
78 self.collectionView.reloadData(); 91 self.collectionView.reloadData();
79 } 92 }
80 } 93 }
...@@ -122,4 +135,17 @@ extension MyRewardsBannerOffersScrollTableViewCell: UICollectionViewDataSource, ...@@ -122,4 +135,17 @@ extension MyRewardsBannerOffersScrollTableViewCell: UICollectionViewDataSource,
122 public func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets { 135 public func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
123 return UIEdgeInsets.zero 136 return UIEdgeInsets.zero
124 } 137 }
138 +
139 + // MARK: - UIScrollViewDelegate
140 + public func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
141 + let pageWidth = scrollView.frame.width
142 + let currentPage = Int(scrollView.contentOffset.x / pageWidth)
143 + pageControl.currentPage = currentPage
144 + }
145 +
146 + public func scrollViewDidEndScrollingAnimation(_ scrollView: UIScrollView) {
147 + let pageWidth = scrollView.frame.width
148 + let currentPage = Int(scrollView.contentOffset.x / pageWidth)
149 + pageControl.currentPage = currentPage
150 + }
125 } 151 }
......
...@@ -111,19 +111,25 @@ ...@@ -111,19 +111,25 @@
111 <outlet property="delegate" destination="KGk-i7-Jjw" id="fQ4-0u-38c"/> 111 <outlet property="delegate" destination="KGk-i7-Jjw" id="fQ4-0u-38c"/>
112 </connections> 112 </connections>
113 </collectionView> 113 </collectionView>
114 + <pageControl opaque="NO" contentMode="scaleToFill" ambiguous="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" numberOfPages="3" translatesAutoresizingMaskIntoConstraints="NO" id="lOm-CZ-dVG">
115 + <rect key="frame" x="170" y="136" width="73" height="26"/>
116 + </pageControl>
114 </subviews> 117 </subviews>
115 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> 118 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
116 <constraints> 119 <constraints>
117 - <constraint firstAttribute="bottom" secondItem="I7z-Fz-SNP" secondAttribute="bottom" id="0xG-dd-XJl"/> 120 + <constraint firstItem="lOm-CZ-dVG" firstAttribute="top" secondItem="I7z-Fz-SNP" secondAttribute="bottom" id="0xG-dd-XJl"/>
121 + <constraint firstAttribute="bottom" secondItem="lOm-CZ-dVG" secondAttribute="bottom" id="7gm-Kg-nCS"/>
118 <constraint firstItem="JTs-J5-DO2" firstAttribute="top" secondItem="VzF-dQ-3Wa" secondAttribute="top" constant="36" id="Ac5-fx-J3w"/> 122 <constraint firstItem="JTs-J5-DO2" firstAttribute="top" secondItem="VzF-dQ-3Wa" secondAttribute="top" constant="36" id="Ac5-fx-J3w"/>
119 <constraint firstItem="JTs-J5-DO2" firstAttribute="leading" secondItem="VzF-dQ-3Wa" secondAttribute="leading" constant="24" id="B98-id-FLf"/> 123 <constraint firstItem="JTs-J5-DO2" firstAttribute="leading" secondItem="VzF-dQ-3Wa" secondAttribute="leading" constant="24" id="B98-id-FLf"/>
120 <constraint firstAttribute="trailing" secondItem="JTs-J5-DO2" secondAttribute="trailing" constant="24" id="Rdi-FK-2Ft"/> 124 <constraint firstAttribute="trailing" secondItem="JTs-J5-DO2" secondAttribute="trailing" constant="24" id="Rdi-FK-2Ft"/>
121 <constraint firstAttribute="trailing" secondItem="I7z-Fz-SNP" secondAttribute="trailing" id="avB-Gc-ttI"/> 125 <constraint firstAttribute="trailing" secondItem="I7z-Fz-SNP" secondAttribute="trailing" id="avB-Gc-ttI"/>
122 <constraint firstItem="I7z-Fz-SNP" firstAttribute="leading" secondItem="VzF-dQ-3Wa" secondAttribute="leading" id="pTY-7d-s1S"/> 126 <constraint firstItem="I7z-Fz-SNP" firstAttribute="leading" secondItem="VzF-dQ-3Wa" secondAttribute="leading" id="pTY-7d-s1S"/>
123 - <constraint firstItem="I7z-Fz-SNP" firstAttribute="top" secondItem="JTs-J5-DO2" secondAttribute="bottom" constant="10" id="vJF-jy-p83"/> 127 + <constraint firstItem="I7z-Fz-SNP" firstAttribute="top" secondItem="JTs-J5-DO2" secondAttribute="bottom" constant="5" id="vJF-jy-p83"/>
128 + <constraint firstItem="lOm-CZ-dVG" firstAttribute="centerX" secondItem="VzF-dQ-3Wa" secondAttribute="centerX" id="xpw-tV-NcW"/>
124 </constraints> 129 </constraints>
125 </view> 130 </view>
126 </subviews> 131 </subviews>
132 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
127 <constraints> 133 <constraints>
128 <constraint firstItem="VzF-dQ-3Wa" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="7Ut-VE-YGv"/> 134 <constraint firstItem="VzF-dQ-3Wa" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="7Ut-VE-YGv"/>
129 <constraint firstAttribute="trailing" secondItem="VzF-dQ-3Wa" secondAttribute="trailing" id="Hic-ok-g96"/> 135 <constraint firstAttribute="trailing" secondItem="VzF-dQ-3Wa" secondAttribute="trailing" id="Hic-ok-g96"/>
...@@ -135,6 +141,7 @@ ...@@ -135,6 +141,7 @@
135 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> 141 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
136 <connections> 142 <connections>
137 <outlet property="collectionView" destination="I7z-Fz-SNP" id="yrF-mR-aQu"/> 143 <outlet property="collectionView" destination="I7z-Fz-SNP" id="yrF-mR-aQu"/>
144 + <outlet property="pageControl" destination="lOm-CZ-dVG" id="Skf-hV-rjH"/>
138 <outlet property="profileImage" destination="fZO-NB-UyL" id="l05-qG-DJv"/> 145 <outlet property="profileImage" destination="fZO-NB-UyL" id="l05-qG-DJv"/>
139 <outlet property="tagLabel1" destination="4m7-JY-MDY" id="Min-YW-AN2"/> 146 <outlet property="tagLabel1" destination="4m7-JY-MDY" id="Min-YW-AN2"/>
140 <outlet property="tagLabel2" destination="WN9-wM-hV8" id="yWk-1S-4Zk"/> 147 <outlet property="tagLabel2" destination="WN9-wM-hV8" id="yWk-1S-4Zk"/>
......