Manos Chorianopoulos

MyRewardsVC part2

...@@ -22,6 +22,8 @@ ...@@ -22,6 +22,8 @@
22 1EB4F42B2DE0A0AF00D934C0 /* MyRewardsOffersScrollTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1EB4F42A2DE0A0AF00D934C0 /* MyRewardsOffersScrollTableViewCell.xib */; }; 22 1EB4F42B2DE0A0AF00D934C0 /* MyRewardsOffersScrollTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1EB4F42A2DE0A0AF00D934C0 /* MyRewardsOffersScrollTableViewCell.xib */; };
23 1EB4F42C2DE0A0AF00D934C0 /* MyRewardsOffersScrollTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EB4F4292DE0A0AF00D934C0 /* MyRewardsOffersScrollTableViewCell.swift */; }; 23 1EB4F42C2DE0A0AF00D934C0 /* MyRewardsOffersScrollTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EB4F4292DE0A0AF00D934C0 /* MyRewardsOffersScrollTableViewCell.swift */; };
24 1EBF5F072840E13F00B8B17F /* SwiftEventBus in Frameworks */ = {isa = PBXBuildFile; productRef = 1EBF5F062840E13F00B8B17F /* SwiftEventBus */; }; 24 1EBF5F072840E13F00B8B17F /* SwiftEventBus in Frameworks */ = {isa = PBXBuildFile; productRef = 1EBF5F062840E13F00B8B17F /* SwiftEventBus */; };
25 + 1ED41E4C2DE0C24D00836ABA /* MyRewardsBannerOfferCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1ED41E4A2DE0C24D00836ABA /* MyRewardsBannerOfferCollectionViewCell.swift */; };
26 + 1ED41E4D2DE0C24D00836ABA /* MyRewardsBannerOfferCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1ED41E4B2DE0C24D00836ABA /* MyRewardsBannerOfferCollectionViewCell.xib */; };
25 7630AD9A6242D60846D6750C /* Pods_SwiftWarplyFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0D5F56DD4E5371A50AD2D87 /* Pods_SwiftWarplyFramework.framework */; }; 27 7630AD9A6242D60846D6750C /* Pods_SwiftWarplyFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0D5F56DD4E5371A50AD2D87 /* Pods_SwiftWarplyFramework.framework */; };
26 A07936762885E9CC00064122 /* UIColorExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = A07936752885E9CC00064122 /* UIColorExtensions.swift */; }; 28 A07936762885E9CC00064122 /* UIColorExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = A07936752885E9CC00064122 /* UIColorExtensions.swift */; };
27 E6A77853282933340045BBA8 /* SwiftWarplyFramework.docc in Sources */ = {isa = PBXBuildFile; fileRef = E6A77852282933340045BBA8 /* SwiftWarplyFramework.docc */; }; 29 E6A77853282933340045BBA8 /* SwiftWarplyFramework.docc in Sources */ = {isa = PBXBuildFile; fileRef = E6A77852282933340045BBA8 /* SwiftWarplyFramework.docc */; };
...@@ -159,6 +161,8 @@ ...@@ -159,6 +161,8 @@
159 1EB4F4242DE09AAC00D934C0 /* MyRewardsBannerOffersScrollTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MyRewardsBannerOffersScrollTableViewCell.xib; sourceTree = "<group>"; }; 161 1EB4F4242DE09AAC00D934C0 /* MyRewardsBannerOffersScrollTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MyRewardsBannerOffersScrollTableViewCell.xib; sourceTree = "<group>"; };
160 1EB4F4292DE0A0AF00D934C0 /* MyRewardsOffersScrollTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyRewardsOffersScrollTableViewCell.swift; sourceTree = "<group>"; }; 162 1EB4F4292DE0A0AF00D934C0 /* MyRewardsOffersScrollTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyRewardsOffersScrollTableViewCell.swift; sourceTree = "<group>"; };
161 1EB4F42A2DE0A0AF00D934C0 /* MyRewardsOffersScrollTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MyRewardsOffersScrollTableViewCell.xib; sourceTree = "<group>"; }; 163 1EB4F42A2DE0A0AF00D934C0 /* MyRewardsOffersScrollTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MyRewardsOffersScrollTableViewCell.xib; sourceTree = "<group>"; };
164 + 1ED41E4A2DE0C24D00836ABA /* MyRewardsBannerOfferCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyRewardsBannerOfferCollectionViewCell.swift; sourceTree = "<group>"; };
165 + 1ED41E4B2DE0C24D00836ABA /* MyRewardsBannerOfferCollectionViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MyRewardsBannerOfferCollectionViewCell.xib; sourceTree = "<group>"; };
162 A07936752885E9CC00064122 /* UIColorExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIColorExtensions.swift; sourceTree = "<group>"; }; 166 A07936752885E9CC00064122 /* UIColorExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIColorExtensions.swift; sourceTree = "<group>"; };
163 A9B7BE01A4E812DE49866EF8 /* Pods-SwiftWarplyFramework.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SwiftWarplyFramework.debug.xcconfig"; path = "Target Support Files/Pods-SwiftWarplyFramework/Pods-SwiftWarplyFramework.debug.xcconfig"; sourceTree = "<group>"; }; 167 A9B7BE01A4E812DE49866EF8 /* Pods-SwiftWarplyFramework.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SwiftWarplyFramework.debug.xcconfig"; path = "Target Support Files/Pods-SwiftWarplyFramework/Pods-SwiftWarplyFramework.debug.xcconfig"; sourceTree = "<group>"; };
164 B9EB8A451EF0C5AD75094EEE /* Pods-SwiftWarplyFramework.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SwiftWarplyFramework.release.xcconfig"; path = "Target Support Files/Pods-SwiftWarplyFramework/Pods-SwiftWarplyFramework.release.xcconfig"; sourceTree = "<group>"; }; 168 B9EB8A451EF0C5AD75094EEE /* Pods-SwiftWarplyFramework.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SwiftWarplyFramework.release.xcconfig"; path = "Target Support Files/Pods-SwiftWarplyFramework/Pods-SwiftWarplyFramework.release.xcconfig"; sourceTree = "<group>"; };
...@@ -364,6 +368,7 @@ ...@@ -364,6 +368,7 @@
364 1EA8E5BC2DDF34FB00CD3418 /* cells */ = { 368 1EA8E5BC2DDF34FB00CD3418 /* cells */ = {
365 isa = PBXGroup; 369 isa = PBXGroup;
366 children = ( 370 children = (
371 + 1ED41E492DE0C21800836ABA /* MyRewardsBannerOfferCollectionViewCell */,
367 1EB4F4282DE0A09500D934C0 /* MyRewardsOffersScrollTableViewCell */, 372 1EB4F4282DE0A09500D934C0 /* MyRewardsOffersScrollTableViewCell */,
368 1EB4F4222DE09A4300D934C0 /* MyRewardsBannerOffersScrollTableViewCell */, 373 1EB4F4222DE09A4300D934C0 /* MyRewardsBannerOffersScrollTableViewCell */,
369 ); 374 );
...@@ -388,6 +393,15 @@ ...@@ -388,6 +393,15 @@
388 path = MyRewardsOffersScrollTableViewCell; 393 path = MyRewardsOffersScrollTableViewCell;
389 sourceTree = "<group>"; 394 sourceTree = "<group>";
390 }; 395 };
396 + 1ED41E492DE0C21800836ABA /* MyRewardsBannerOfferCollectionViewCell */ = {
397 + isa = PBXGroup;
398 + children = (
399 + 1ED41E4A2DE0C24D00836ABA /* MyRewardsBannerOfferCollectionViewCell.swift */,
400 + 1ED41E4B2DE0C24D00836ABA /* MyRewardsBannerOfferCollectionViewCell.xib */,
401 + );
402 + path = MyRewardsBannerOfferCollectionViewCell;
403 + sourceTree = "<group>";
404 + };
391 98AD36FA62350CEABCD961A7 /* Frameworks */ = { 405 98AD36FA62350CEABCD961A7 /* Frameworks */ = {
392 isa = PBXGroup; 406 isa = PBXGroup;
393 children = ( 407 children = (
...@@ -801,6 +815,7 @@ ...@@ -801,6 +815,7 @@
801 E6A778EA282933E60045BBA8 /* WLNativeVideoTableViewCell.xib in Resources */, 815 E6A778EA282933E60045BBA8 /* WLNativeVideoTableViewCell.xib in Resources */,
802 1E917CD62DDF64B2002221D8 /* MyRewardsViewController.xib in Resources */, 816 1E917CD62DDF64B2002221D8 /* MyRewardsViewController.xib in Resources */,
803 E6A7790A282933E60045BBA8 /* warp_white_close_button.png in Resources */, 817 E6A7790A282933E60045BBA8 /* warp_white_close_button.png in Resources */,
818 + 1ED41E4D2DE0C24D00836ABA /* MyRewardsBannerOfferCollectionViewCell.xib in Resources */,
804 E6A778F4282933E60045BBA8 /* WLNativeAdCollectionViewCell.xib in Resources */, 819 E6A778F4282933E60045BBA8 /* WLNativeAdCollectionViewCell.xib in Resources */,
805 E6A778F3282933E60045BBA8 /* WLNativeAdTableViewCell.xib in Resources */, 820 E6A778F3282933E60045BBA8 /* WLNativeAdTableViewCell.xib in Resources */,
806 E6A77A38282BC3530045BBA8 /* Media.xcassets in Resources */, 821 E6A77A38282BC3530045BBA8 /* Media.xcassets in Resources */,
...@@ -855,6 +870,7 @@ ...@@ -855,6 +870,7 @@
855 E6A778F5282933E60045BBA8 /* WLCustomNativeAdTableViewCell.m in Sources */, 870 E6A778F5282933E60045BBA8 /* WLCustomNativeAdTableViewCell.m in Sources */,
856 E6A77901282933E60045BBA8 /* WLBaseItem.m in Sources */, 871 E6A77901282933E60045BBA8 /* WLBaseItem.m in Sources */,
857 E6A778F0282933E60045BBA8 /* WLNativeAdsCollectionMode.m in Sources */, 872 E6A778F0282933E60045BBA8 /* WLNativeAdsCollectionMode.m in Sources */,
873 + 1ED41E4C2DE0C24D00836ABA /* MyRewardsBannerOfferCollectionViewCell.swift in Sources */,
858 E6A7791C282933E60045BBA8 /* WLSMSActionHandlerDeprecated.m in Sources */, 874 E6A7791C282933E60045BBA8 /* WLSMSActionHandlerDeprecated.m in Sources */,
859 E6A77934282933E70045BBA8 /* UIActivityIndicatorView+AFNetworking.m in Sources */, 875 E6A77934282933E70045BBA8 /* UIActivityIndicatorView+AFNetworking.m in Sources */,
860 E6A778E6282933E60045BBA8 /* MyEmptyClass.swift in Sources */, 876 E6A778E6282933E60045BBA8 /* MyEmptyClass.swift in Sources */,
......
1 +{
2 + "images" : [
3 + {
4 + "filename" : "contest_banner.png",
5 + "idiom" : "universal",
6 + "scale" : "1x"
7 + },
8 + {
9 + "filename" : "contest_banner 1.png",
10 + "idiom" : "universal",
11 + "scale" : "2x"
12 + },
13 + {
14 + "filename" : "contest_banner 2.png",
15 + "idiom" : "universal",
16 + "scale" : "3x"
17 + }
18 + ],
19 + "info" : {
20 + "author" : "xcode",
21 + "version" : 1
22 + }
23 +}
1 +//
2 +// MyRewardsBannerOfferCollectionViewCell.swift
3 +// SwiftWarplyFramework
4 +//
5 +// Created by Manos Chorianopoulos on 23/5/25.
6 +//
7 +
8 +import UIKit
9 +
10 +@objc public class MyRewardsBannerOfferCollectionViewCell: UICollectionViewCell {
11 + @IBOutlet weak var backgroundImage: UIImageView!
12 +
13 + public override func awakeFromNib() {
14 + super.awakeFromNib()
15 + // Initialization code
16 + }
17 +
18 + func configureCell(data: OfferModel) {
19 + backgroundImage.image = UIImage(named: data.bannerImage, in: MyEmptyClass.resourceBundle(), compatibleWith: nil)
20 + }
21 +}
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="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
8 + </dependencies>
9 + <objects>
10 + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
11 + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
12 + <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="MyRewardsBannerOfferCollectionViewCell" id="gTV-IL-0wX" customClass="MyRewardsBannerOfferCollectionViewCell" customModule="SwiftWarplyFramework" customModuleProvider="target">
13 + <rect key="frame" x="0.0" y="0.0" width="329" height="235"/>
14 + <autoresizingMask key="autoresizingMask"/>
15 + <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
16 + <rect key="frame" x="0.0" y="0.0" width="329" height="235"/>
17 + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
18 + <subviews>
19 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="UtL-2K-6j5" userLabel="Content View">
20 + <rect key="frame" x="0.0" y="0.0" width="329" height="235"/>
21 + <subviews>
22 + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="0vR-l5-Rgp">
23 + <rect key="frame" x="0.0" y="0.0" width="329" height="235"/>
24 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
25 + </imageView>
26 + </subviews>
27 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
28 + <constraints>
29 + <constraint firstItem="0vR-l5-Rgp" firstAttribute="leading" secondItem="UtL-2K-6j5" secondAttribute="leading" id="7nR-JP-bOG"/>
30 + <constraint firstAttribute="bottom" secondItem="0vR-l5-Rgp" secondAttribute="bottom" id="TcC-gp-xQg"/>
31 + <constraint firstAttribute="trailing" secondItem="0vR-l5-Rgp" secondAttribute="trailing" id="ew8-fc-Alt"/>
32 + <constraint firstItem="0vR-l5-Rgp" firstAttribute="top" secondItem="UtL-2K-6j5" secondAttribute="top" id="fKH-4h-SgQ"/>
33 + </constraints>
34 + </view>
35 + </subviews>
36 + </view>
37 + <viewLayoutGuide key="safeArea" id="ZTg-uK-7eu"/>
38 + <constraints>
39 + <constraint firstItem="UtL-2K-6j5" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" id="0Dc-0s-93Y"/>
40 + <constraint firstAttribute="bottom" secondItem="UtL-2K-6j5" secondAttribute="bottom" id="XAg-hM-jgU"/>
41 + <constraint firstItem="UtL-2K-6j5" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" id="fVw-LI-PWH"/>
42 + <constraint firstAttribute="trailing" secondItem="UtL-2K-6j5" secondAttribute="trailing" id="uSL-t1-ATu"/>
43 + </constraints>
44 + <size key="customSize" width="329" height="235"/>
45 + <connections>
46 + <outlet property="backgroundImage" destination="0vR-l5-Rgp" id="uTh-Ji-cdm"/>
47 + </connections>
48 + <point key="canvasLocation" x="68" y="-22"/>
49 + </collectionViewCell>
50 + </objects>
51 +</document>
...@@ -13,8 +13,9 @@ import UIKit ...@@ -13,8 +13,9 @@ import UIKit
13 @IBOutlet weak var tagView2: UIView! 13 @IBOutlet weak var tagView2: UIView!
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 17
17 - var section: SectionModel? 18 + var data: SectionModel?
18 19
19 public override func awakeFromNib() { 20 public override func awakeFromNib() {
20 super.awakeFromNib() 21 super.awakeFromNib()
...@@ -31,6 +32,10 @@ import UIKit ...@@ -31,6 +32,10 @@ import UIKit
31 tagView2.layer.cornerRadius = 4.0 32 tagView2.layer.cornerRadius = 4.0
32 tagLabel2.font = UIFont(name: "PingLCG-Regular", size: 17) 33 tagLabel2.font = UIFont(name: "PingLCG-Regular", size: 17)
33 tagLabel2.textColor = UIColor(rgb: 0xFFFFFF) 34 tagLabel2.textColor = UIColor(rgb: 0xFFFFFF)
35 +
36 +
37 + // Register XIBs for collection view cells
38 + collectionView.register(UINib(nibName: "MyRewardsBannerOfferCollectionViewCell", bundle: Bundle(for: MyEmptyClass.self)), forCellWithReuseIdentifier: "MyRewardsBannerOfferCollectionViewCell")
34 } 39 }
35 40
36 public override func setSelected(_ selected: Bool, animated: Bool) { 41 public override func setSelected(_ selected: Bool, animated: Bool) {
...@@ -40,6 +45,41 @@ import UIKit ...@@ -40,6 +45,41 @@ import UIKit
40 } 45 }
41 46
42 func configureCell(data: SectionModel?) { 47 func configureCell(data: SectionModel?) {
43 - self.section = data 48 + self.data = data
49 + }
50 +}
51 +
52 +extension MyRewardsBannerOffersScrollTableViewCell: UICollectionViewDataSource,UICollectionViewDelegate {
53 +
54 + public func numberOfSections(in collectionView: UICollectionView) -> Int {
55 + return 1
56 + }
57 +
58 + public func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
59 + return self.data?.offers.count ?? 0
44 } 60 }
61 +
62 + public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
63 + let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "MyRewardsBannerOfferCollectionViewCell", for: indexPath) as! MyRewardsBannerOfferCollectionViewCell
64 +// cell.configureCell(offer: self.data?.offers[indexPath.row])
65 + if let offer = self.data?.offers[indexPath.row] {
66 + cell.configureCell(data: offer)
67 + }
68 + return cell;
69 + }
70 +
71 + public func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
72 +// TODO: open offer
73 + }
74 +
75 +// // Distance Between Item Cells
76 +// func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
77 +// return 5
78 +// }
79 +//
80 +// // Cell Margin
81 +// func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
82 +// return UIEdgeInsets(top: 0, left: 5, bottom: 0, right: 0)
83 +// }
84 +
45 } 85 }
......
...@@ -9,18 +9,18 @@ ...@@ -9,18 +9,18 @@
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="MyRewardsBannerOffersScrollTableViewCell" rowHeight="119" id="KGk-i7-Jjw" customClass="MyRewardsBannerOffersScrollTableViewCell" customModule="SwiftWarplyFramework" customModuleProvider="target"> 12 + <tableViewCell contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="MyRewardsBannerOffersScrollTableViewCell" rowHeight="349" id="KGk-i7-Jjw" customClass="MyRewardsBannerOffersScrollTableViewCell" customModule="SwiftWarplyFramework" customModuleProvider="target">
13 - <rect key="frame" x="0.0" y="0.0" width="388" height="119"/> 13 + <rect key="frame" x="0.0" y="0.0" width="413" height="349"/>
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" ambiguous="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM"> 15 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" ambiguous="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
16 - <rect key="frame" x="0.0" y="0.0" width="388" height="119"/> 16 + <rect key="frame" x="0.0" y="0.0" width="413" height="349"/>
17 <autoresizingMask key="autoresizingMask"/> 17 <autoresizingMask key="autoresizingMask"/>
18 <subviews> 18 <subviews>
19 <view contentMode="scaleToFill" ambiguous="YES" translatesAutoresizingMaskIntoConstraints="NO" id="VzF-dQ-3Wa" userLabel="Parent View"> 19 <view contentMode="scaleToFill" ambiguous="YES" translatesAutoresizingMaskIntoConstraints="NO" id="VzF-dQ-3Wa" userLabel="Parent View">
20 - <rect key="frame" x="0.0" y="0.0" width="388" height="298"/> 20 + <rect key="frame" x="0.0" y="0.0" width="413" height="298"/>
21 <subviews> 21 <subviews>
22 <view contentMode="scaleToFill" ambiguous="YES" translatesAutoresizingMaskIntoConstraints="NO" id="JTs-J5-DO2" userLabel="Top View"> 22 <view contentMode="scaleToFill" ambiguous="YES" translatesAutoresizingMaskIntoConstraints="NO" id="JTs-J5-DO2" userLabel="Top View">
23 - <rect key="frame" x="24" y="36" width="340" height="43"/> 23 + <rect key="frame" x="24" y="36" width="365" height="43"/>
24 <subviews> 24 <subviews>
25 <view contentMode="scaleToFill" ambiguous="YES" translatesAutoresizingMaskIntoConstraints="NO" id="h09-MS-XKy"> 25 <view contentMode="scaleToFill" ambiguous="YES" translatesAutoresizingMaskIntoConstraints="NO" id="h09-MS-XKy">
26 <rect key="frame" x="0.0" y="8.6666666666666643" width="58" height="26"/> 26 <rect key="frame" x="0.0" y="8.6666666666666643" width="58" height="26"/>
...@@ -61,7 +61,7 @@ ...@@ -61,7 +61,7 @@
61 </constraints> 61 </constraints>
62 </view> 62 </view>
63 <view contentMode="scaleToFill" ambiguous="YES" translatesAutoresizingMaskIntoConstraints="NO" id="5cf-tr-Vjf"> 63 <view contentMode="scaleToFill" ambiguous="YES" translatesAutoresizingMaskIntoConstraints="NO" id="5cf-tr-Vjf">
64 - <rect key="frame" x="297" y="0.0" width="43" height="43"/> 64 + <rect key="frame" x="322" y="0.0" width="43" height="43"/>
65 <subviews> 65 <subviews>
66 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="fZO-NB-UyL"> 66 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="fZO-NB-UyL">
67 <rect key="frame" x="0.0" y="0.0" width="43" height="43"/> 67 <rect key="frame" x="0.0" y="0.0" width="43" height="43"/>
...@@ -93,13 +93,34 @@ ...@@ -93,13 +93,34 @@
93 <constraint firstItem="H5g-xq-68p" firstAttribute="leading" secondItem="h09-MS-XKy" secondAttribute="trailing" constant="8" id="wqx-Hc-3YH"/> 93 <constraint firstItem="H5g-xq-68p" firstAttribute="leading" secondItem="h09-MS-XKy" secondAttribute="trailing" constant="8" id="wqx-Hc-3YH"/>
94 </constraints> 94 </constraints>
95 </view> 95 </view>
96 + <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" ambiguous="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="I7z-Fz-SNP">
97 + <rect key="frame" x="0.0" y="149" width="413" height="0.0"/>
98 + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
99 + <constraints>
100 + <constraint firstAttribute="height" constant="348" id="aEf-Xl-A2C"/>
101 + </constraints>
102 + <collectionViewFlowLayout key="collectionViewLayout" scrollDirection="horizontal" automaticEstimatedItemSize="YES" minimumLineSpacing="5" minimumInteritemSpacing="5" id="yIw-sc-1jC">
103 + <size key="itemSize" width="128" height="120"/>
104 + <size key="headerReferenceSize" width="0.0" height="0.0"/>
105 + <size key="footerReferenceSize" width="0.0" height="0.0"/>
106 + <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
107 + </collectionViewFlowLayout>
108 + <cells/>
109 + <connections>
110 + <outlet property="dataSource" destination="KGk-i7-Jjw" id="dZV-ST-7S4"/>
111 + <outlet property="delegate" destination="KGk-i7-Jjw" id="fQ4-0u-38c"/>
112 + </connections>
113 + </collectionView>
96 </subviews> 114 </subviews>
97 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> 115 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
98 <constraints> 116 <constraints>
117 + <constraint firstAttribute="bottom" secondItem="I7z-Fz-SNP" secondAttribute="bottom" id="0xG-dd-XJl"/>
99 <constraint firstItem="JTs-J5-DO2" firstAttribute="top" secondItem="VzF-dQ-3Wa" secondAttribute="top" constant="36" id="Ac5-fx-J3w"/> 118 <constraint firstItem="JTs-J5-DO2" firstAttribute="top" secondItem="VzF-dQ-3Wa" secondAttribute="top" constant="36" id="Ac5-fx-J3w"/>
100 <constraint firstItem="JTs-J5-DO2" firstAttribute="leading" secondItem="VzF-dQ-3Wa" secondAttribute="leading" constant="24" id="B98-id-FLf"/> 119 <constraint firstItem="JTs-J5-DO2" firstAttribute="leading" secondItem="VzF-dQ-3Wa" secondAttribute="leading" constant="24" id="B98-id-FLf"/>
101 <constraint firstAttribute="trailing" secondItem="JTs-J5-DO2" secondAttribute="trailing" constant="24" id="Rdi-FK-2Ft"/> 120 <constraint firstAttribute="trailing" secondItem="JTs-J5-DO2" secondAttribute="trailing" constant="24" id="Rdi-FK-2Ft"/>
102 - <constraint firstAttribute="bottom" secondItem="JTs-J5-DO2" secondAttribute="bottom" constant="20" id="Ubp-Qg-xtv"/> 121 + <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"/>
123 + <constraint firstItem="I7z-Fz-SNP" firstAttribute="top" secondItem="JTs-J5-DO2" secondAttribute="bottom" constant="20" id="vJF-jy-p83"/>
103 </constraints> 124 </constraints>
104 </view> 125 </view>
105 </subviews> 126 </subviews>
...@@ -113,13 +134,14 @@ ...@@ -113,13 +134,14 @@
113 <viewLayoutGuide key="safeArea" id="njF-e1-oar"/> 134 <viewLayoutGuide key="safeArea" id="njF-e1-oar"/>
114 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> 135 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
115 <connections> 136 <connections>
137 + <outlet property="collectionView" destination="I7z-Fz-SNP" id="yrF-mR-aQu"/>
116 <outlet property="profileImage" destination="fZO-NB-UyL" id="l05-qG-DJv"/> 138 <outlet property="profileImage" destination="fZO-NB-UyL" id="l05-qG-DJv"/>
117 <outlet property="tagLabel1" destination="4m7-JY-MDY" id="Min-YW-AN2"/> 139 <outlet property="tagLabel1" destination="4m7-JY-MDY" id="Min-YW-AN2"/>
118 <outlet property="tagLabel2" destination="WN9-wM-hV8" id="yWk-1S-4Zk"/> 140 <outlet property="tagLabel2" destination="WN9-wM-hV8" id="yWk-1S-4Zk"/>
119 <outlet property="tagView1" destination="h09-MS-XKy" id="Hxa-cN-6i4"/> 141 <outlet property="tagView1" destination="h09-MS-XKy" id="Hxa-cN-6i4"/>
120 <outlet property="tagView2" destination="H5g-xq-68p" id="Vcv-Si-g68"/> 142 <outlet property="tagView2" destination="H5g-xq-68p" id="Vcv-Si-g68"/>
121 </connections> 143 </connections>
122 - <point key="canvasLocation" x="53.435114503816791" y="14.43661971830986"/> 144 + <point key="canvasLocation" x="72.51908396946564" y="95.422535211267615"/>
123 </tableViewCell> 145 </tableViewCell>
124 </objects> 146 </objects>
125 </document> 147 </document>
......