Showing
3 changed files
with
379 additions
and
0 deletions
... | @@ -33,6 +33,8 @@ | ... | @@ -33,6 +33,8 @@ |
33 | A07936762885E9CC00064122 /* UIColorExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = A07936752885E9CC00064122 /* UIColorExtensions.swift */; }; | 33 | A07936762885E9CC00064122 /* UIColorExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = A07936752885E9CC00064122 /* UIColorExtensions.swift */; }; |
34 | A079367C2885F2F500064122 /* AnalysisHeaderViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A079367B2885F2F500064122 /* AnalysisHeaderViewCell.swift */; }; | 34 | A079367C2885F2F500064122 /* AnalysisHeaderViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A079367B2885F2F500064122 /* AnalysisHeaderViewCell.swift */; }; |
35 | A079367E2885F60A00064122 /* AnalysisHeaderMessageViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A079367D2885F60A00064122 /* AnalysisHeaderMessageViewCell.swift */; }; | 35 | A079367E2885F60A00064122 /* AnalysisHeaderMessageViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A079367D2885F60A00064122 /* AnalysisHeaderMessageViewCell.swift */; }; |
36 | + A080CFD628D170A20045A315 /* MapsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A080CFD428D170A20045A315 /* MapsViewController.swift */; }; | ||
37 | + A080CFD728D170A20045A315 /* MapsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A080CFD528D170A20045A315 /* MapsViewController.xib */; }; | ||
36 | A09DBCAE2888BA8100DD50B0 /* SharingHistoryViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A09DBCAD2888BA8100DD50B0 /* SharingHistoryViewController.swift */; }; | 38 | A09DBCAE2888BA8100DD50B0 /* SharingHistoryViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A09DBCAD2888BA8100DD50B0 /* SharingHistoryViewController.swift */; }; |
37 | E6A77853282933340045BBA8 /* SwiftWarplyFramework.docc in Sources */ = {isa = PBXBuildFile; fileRef = E6A77852282933340045BBA8 /* SwiftWarplyFramework.docc */; }; | 39 | E6A77853282933340045BBA8 /* SwiftWarplyFramework.docc in Sources */ = {isa = PBXBuildFile; fileRef = E6A77852282933340045BBA8 /* SwiftWarplyFramework.docc */; }; |
38 | E6A77854282933340045BBA8 /* SwiftWarplyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = E6A77851282933340045BBA8 /* SwiftWarplyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; | 40 | E6A77854282933340045BBA8 /* SwiftWarplyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = E6A77851282933340045BBA8 /* SwiftWarplyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; |
... | @@ -187,6 +189,8 @@ | ... | @@ -187,6 +189,8 @@ |
187 | A07936752885E9CC00064122 /* UIColorExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIColorExtensions.swift; sourceTree = "<group>"; }; | 189 | A07936752885E9CC00064122 /* UIColorExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIColorExtensions.swift; sourceTree = "<group>"; }; |
188 | A079367B2885F2F500064122 /* AnalysisHeaderViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnalysisHeaderViewCell.swift; sourceTree = "<group>"; }; | 190 | A079367B2885F2F500064122 /* AnalysisHeaderViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnalysisHeaderViewCell.swift; sourceTree = "<group>"; }; |
189 | A079367D2885F60A00064122 /* AnalysisHeaderMessageViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnalysisHeaderMessageViewCell.swift; sourceTree = "<group>"; }; | 191 | A079367D2885F60A00064122 /* AnalysisHeaderMessageViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnalysisHeaderMessageViewCell.swift; sourceTree = "<group>"; }; |
192 | + A080CFD428D170A20045A315 /* MapsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapsViewController.swift; sourceTree = "<group>"; }; | ||
193 | + A080CFD528D170A20045A315 /* MapsViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MapsViewController.xib; sourceTree = "<group>"; }; | ||
190 | A09DBCAD2888BA8100DD50B0 /* SharingHistoryViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SharingHistoryViewController.swift; sourceTree = "<group>"; }; | 194 | A09DBCAD2888BA8100DD50B0 /* SharingHistoryViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SharingHistoryViewController.swift; sourceTree = "<group>"; }; |
191 | 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>"; }; | 195 | 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>"; }; |
192 | 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>"; }; | 196 | 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>"; }; |
... | @@ -400,6 +404,13 @@ | ... | @@ -400,6 +404,13 @@ |
400 | name = cells; | 404 | name = cells; |
401 | sourceTree = "<group>"; | 405 | sourceTree = "<group>"; |
402 | }; | 406 | }; |
407 | + A080CFD828D17F7A0045A315 /* controls */ = { | ||
408 | + isa = PBXGroup; | ||
409 | + children = ( | ||
410 | + ); | ||
411 | + name = controls; | ||
412 | + sourceTree = "<group>"; | ||
413 | + }; | ||
403 | C049E0423E2B72D796B777A3 /* Pods */ = { | 414 | C049E0423E2B72D796B777A3 /* Pods */ = { |
404 | isa = PBXGroup; | 415 | isa = PBXGroup; |
405 | children = ( | 416 | children = ( |
... | @@ -433,9 +444,12 @@ | ... | @@ -433,9 +444,12 @@ |
433 | 1E108A9728A3FA9B0008B8E7 /* Info.plist */, | 444 | 1E108A9728A3FA9B0008B8E7 /* Info.plist */, |
434 | 1E108A8B28A3F8FF0008B8E7 /* Resources */, | 445 | 1E108A8B28A3F8FF0008B8E7 /* Resources */, |
435 | A02F34042882B6E60086465F /* TelcoViewController.swift */, | 446 | A02F34042882B6E60086465F /* TelcoViewController.swift */, |
447 | + A080CFD828D17F7A0045A315 /* controls */, | ||
436 | A07936712885E65C00064122 /* models */, | 448 | A07936712885E65C00064122 /* models */, |
437 | A079366A2885CDDC00064122 /* analysis */, | 449 | A079366A2885CDDC00064122 /* analysis */, |
438 | A07936742885E96A00064122 /* utilities */, | 450 | A07936742885E96A00064122 /* utilities */, |
451 | + A080CFD428D170A20045A315 /* MapsViewController.swift */, | ||
452 | + A080CFD528D170A20045A315 /* MapsViewController.xib */, | ||
439 | E6A7785E282933E40045BBA8 /* CouponsViewController.swift */, | 453 | E6A7785E282933E40045BBA8 /* CouponsViewController.swift */, |
440 | 1EA1AF092835346A008998AA /* CouponsTableViewCell.swift */, | 454 | 1EA1AF092835346A008998AA /* CouponsTableViewCell.swift */, |
441 | E6A7785D282933E40045BBA8 /* CouponViewController.swift */, | 455 | E6A7785D282933E40045BBA8 /* CouponViewController.swift */, |
... | @@ -814,6 +828,7 @@ | ... | @@ -814,6 +828,7 @@ |
814 | E6A778E5282933E60045BBA8 /* Main.storyboard in Resources */, | 828 | E6A778E5282933E60045BBA8 /* Main.storyboard in Resources */, |
815 | 1E108A9628A3F9280008B8E7 /* pf_square_sans_pro_bold.ttf in Resources */, | 829 | 1E108A9628A3F9280008B8E7 /* pf_square_sans_pro_bold.ttf in Resources */, |
816 | 1E108A9228A3F9280008B8E7 /* pf_square_sans_pro_regular.ttf in Resources */, | 830 | 1E108A9228A3F9280008B8E7 /* pf_square_sans_pro_regular.ttf in Resources */, |
831 | + A080CFD728D170A20045A315 /* MapsViewController.xib in Resources */, | ||
817 | E6A778EA282933E60045BBA8 /* WLNativeVideoTableViewCell.xib in Resources */, | 832 | E6A778EA282933E60045BBA8 /* WLNativeVideoTableViewCell.xib in Resources */, |
818 | 1E108A9528A3F9280008B8E7 /* pf_square_sans_pro_bold_italic.ttf in Resources */, | 833 | 1E108A9528A3F9280008B8E7 /* pf_square_sans_pro_bold_italic.ttf in Resources */, |
819 | E6A7790A282933E60045BBA8 /* warp_white_close_button.png in Resources */, | 834 | E6A7790A282933E60045BBA8 /* warp_white_close_button.png in Resources */, |
... | @@ -925,6 +940,7 @@ | ... | @@ -925,6 +940,7 @@ |
925 | E6A7794A282933E70045BBA8 /* FMDatabaseAdditions.m in Sources */, | 940 | E6A7794A282933E70045BBA8 /* FMDatabaseAdditions.m in Sources */, |
926 | E6A77903282933E60045BBA8 /* WLAPSItem.m in Sources */, | 941 | E6A77903282933E60045BBA8 /* WLAPSItem.m in Sources */, |
927 | E6A7790B282933E60045BBA8 /* WLPushManager.m in Sources */, | 942 | E6A7790B282933E60045BBA8 /* WLPushManager.m in Sources */, |
943 | + A080CFD628D170A20045A315 /* MapsViewController.swift in Sources */, | ||
928 | A079366E2885D07700064122 /* AnalysisChildViewController.swift in Sources */, | 944 | A079366E2885D07700064122 /* AnalysisChildViewController.swift in Sources */, |
929 | E6A77950282933E70045BBA8 /* FMResultSet.m in Sources */, | 945 | E6A77950282933E70045BBA8 /* FMResultSet.m in Sources */, |
930 | E6A77936282933E70045BBA8 /* AFAutoPurgingImageCache.m in Sources */, | 946 | E6A77936282933E70045BBA8 /* AFAutoPurgingImageCache.m in Sources */, | ... | ... |
1 | +// | ||
2 | +// MapsViewController.swift | ||
3 | +// SwiftWarplyFramework | ||
4 | +// | ||
5 | +// Created by Βασιλης Σκουρας on 14/9/22. | ||
6 | +// | ||
7 | + | ||
8 | +import UIKit | ||
9 | +import MapKit | ||
10 | + | ||
11 | +class MapsViewController: UIViewController, MKMapViewDelegate { | ||
12 | + | ||
13 | + // ui | ||
14 | + @IBOutlet private var mapView: MKMapView! | ||
15 | + | ||
16 | + @IBOutlet private var titleView: UILabel! | ||
17 | + @IBOutlet private var nameImageView: UIImageView! | ||
18 | + @IBOutlet private var nameView: UILabel! | ||
19 | + @IBOutlet private var hoursView: UILabel! | ||
20 | + @IBOutlet private var phoneView: UILabel! | ||
21 | + @IBOutlet private var addressView: UILabel! | ||
22 | + @IBOutlet private var directionsButton: UIButton! | ||
23 | + @IBOutlet private var infoTopConstraint: NSLayoutConstraint! | ||
24 | + | ||
25 | + // public | ||
26 | + public var couponSet: swiftApi.CouponSetItemModel? | ||
27 | + var merchantsArray:Array<swiftApi.MerchantModel> = [] | ||
28 | + | ||
29 | + // | ||
30 | + var loading: Bool = false | ||
31 | + let initialLocation = CLLocation(latitude: 38.0689416, longitude: 19.9906012) // greece | ||
32 | + | ||
33 | + // | ||
34 | + override func viewDidLoad() { | ||
35 | + super.viewDidLoad() | ||
36 | + | ||
37 | + self.hidesBottomBarWhenPushed = true | ||
38 | + | ||
39 | + self.infoTopConstraint.constant = 0 | ||
40 | + | ||
41 | + setBackButton("ic_close") | ||
42 | + //setNavigationTitle(ccms?._titleOffer ?? "") | ||
43 | + | ||
44 | + mapView.delegate = self | ||
45 | + mapView.centerToLocation(initialLocation) | ||
46 | + | ||
47 | + //directionsButton.titleLabel?.font = UIFont(name: "PFSquareSansPro-Medium", size: 16) | ||
48 | + directionsButton.setTitle("Οδηγίες", for: .normal) | ||
49 | + directionsButton.setTitleColor(.white, for: .normal) | ||
50 | + directionsButton.backgroundColor = UIColor(red: 0.47, green: 0.75, blue: 0.08, alpha: 1.00) | ||
51 | + directionsButton.layer.cornerRadius = 12.0 | ||
52 | + } | ||
53 | + | ||
54 | + // mvp | ||
55 | + @objc func load() { | ||
56 | + | ||
57 | + if (loading) { | ||
58 | + return; | ||
59 | + } | ||
60 | + | ||
61 | + showLoading() | ||
62 | + | ||
63 | + // TODO: adapt params | ||
64 | + let merchantUuid: String = couponSet!.merchant_uuid! | ||
65 | + swiftApi().getMultilingualMerchantsAsync([], false, 0.0, [], "", 0, [merchantUuid], getMerchantsCallback) | ||
66 | + showContent() | ||
67 | + } | ||
68 | + | ||
69 | + func getMerchantsCallback (_ merchantsData: Array<swiftApi.MerchantModel>?) -> Void { | ||
70 | + if (merchantsData != nil) { | ||
71 | + DispatchQueue.main.async { | ||
72 | + self.merchantsArray = merchantsData! | ||
73 | + self.loadMapPins() | ||
74 | + } | ||
75 | + | ||
76 | + return | ||
77 | + } | ||
78 | + } | ||
79 | + | ||
80 | + private func showLoading() { | ||
81 | + | ||
82 | + loading = true | ||
83 | + } | ||
84 | + | ||
85 | + private func showError() { | ||
86 | + } | ||
87 | + | ||
88 | + private func showContent() { | ||
89 | + | ||
90 | + loading = false | ||
91 | + } | ||
92 | + | ||
93 | + // private | ||
94 | + @IBAction func closeButtomAction(_ sender: Any) { | ||
95 | + hidePinDetailsView() | ||
96 | + } | ||
97 | + | ||
98 | + private func loadMapPins() { | ||
99 | + for item in merchantsArray { | ||
100 | + let pin = MKPointAnnotation() | ||
101 | + pin.coordinate = CLLocationCoordinate2D(latitude: item._latitude, longitude: item._longitude) | ||
102 | + mapView.addAnnotation(pin) | ||
103 | + } | ||
104 | + } | ||
105 | + | ||
106 | + private func loadPinDetailsView() { | ||
107 | + self.titleView.text = "INTERSPORT" | ||
108 | + self.nameImageView.image = UIImage(named: "intersport") | ||
109 | + self.nameView.text = "Intersport Χαλάνδρι" | ||
110 | + self.hoursView.text = "Δευτέρα - Τετάρτη" | ||
111 | + self.phoneView.text = "210-6230453" | ||
112 | + self.addressView.text = "ΕΘΝΙΚΗΣ ΑΝΤΙΣΤΑΣΕΩΝ 4 41" | ||
113 | + } | ||
114 | + | ||
115 | + private func showPinDetailsView() { | ||
116 | + self.infoTopConstraint.constant = -320 | ||
117 | + UIView.animate(withDuration: 2.0) { | ||
118 | + self.view.layoutIfNeeded() | ||
119 | + } | ||
120 | + } | ||
121 | + | ||
122 | + private func hidePinDetailsView() { | ||
123 | + self.infoTopConstraint.constant = 0 | ||
124 | + UIView.animate(withDuration: 2.0) { | ||
125 | + self.view.layoutIfNeeded() | ||
126 | + } | ||
127 | + } | ||
128 | + | ||
129 | + // map view delegate | ||
130 | + func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? { | ||
131 | + guard !(annotation is MKUserLocation) else { | ||
132 | + return nil | ||
133 | + } | ||
134 | + | ||
135 | + var annotationView = mapView.dequeueReusableAnnotationView(withIdentifier: "warply_custom") | ||
136 | + if (annotationView == nil) { | ||
137 | + annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: "warply_custom") | ||
138 | + annotationView?.canShowCallout = false | ||
139 | + } else { | ||
140 | + annotationView?.annotation = annotation | ||
141 | + } | ||
142 | + | ||
143 | + // TODO: add custom pin image? | ||
144 | + annotationView?.image = UIImage(named: "custom") | ||
145 | + | ||
146 | + return annotationView | ||
147 | + } | ||
148 | + | ||
149 | + func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) { | ||
150 | + loadPinDetailsView() | ||
151 | + showPinDetailsView() | ||
152 | + } | ||
153 | + | ||
154 | + func mapView(_ mapView: MKMapView, didDeselect view: MKAnnotationView) { | ||
155 | + hidePinDetailsView() | ||
156 | + } | ||
157 | +} | ||
158 | + | ||
159 | +private extension MKMapView { | ||
160 | + | ||
161 | + func centerToLocation(_ location: CLLocation, regionRadius: CLLocationDistance = 1000) { | ||
162 | + let coordinateRegion = MKCoordinateRegion( | ||
163 | + center: location.coordinate, | ||
164 | + latitudinalMeters: regionRadius, | ||
165 | + longitudinalMeters: regionRadius) | ||
166 | + setRegion(coordinateRegion, animated: true) | ||
167 | + } | ||
168 | +} |
1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
2 | +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="20037" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> | ||
3 | + <device id="retina6_1" orientation="portrait" appearance="light"/> | ||
4 | + <dependencies> | ||
5 | + <deployment identifier="iOS"/> | ||
6 | + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="20020"/> | ||
7 | + <capability name="Safe area layout guides" minToolsVersion="9.0"/> | ||
8 | + <capability name="System colors in document resources" minToolsVersion="11.0"/> | ||
9 | + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> | ||
10 | + </dependencies> | ||
11 | + <objects> | ||
12 | + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="MapsViewController" customModule="SwiftWarplyFramework" customModuleProvider="target"> | ||
13 | + <connections> | ||
14 | + <outlet property="addressView" destination="syP-Hv-OGD" id="LUw-pI-3va"/> | ||
15 | + <outlet property="directionsButton" destination="bw3-J9-wHr" id="sSi-OK-KTA"/> | ||
16 | + <outlet property="hoursView" destination="u9U-A7-lbO" id="xm5-gQ-zjh"/> | ||
17 | + <outlet property="infoTopConstraint" destination="9av-UX-8VL" id="uKX-lw-OTH"/> | ||
18 | + <outlet property="mapView" destination="F1c-ck-cQa" id="cdx-31-BiL"/> | ||
19 | + <outlet property="nameImageView" destination="eDV-A1-pOO" id="JYq-eT-kEG"/> | ||
20 | + <outlet property="nameView" destination="MsK-eg-pkk" id="60t-lm-O8m"/> | ||
21 | + <outlet property="phoneView" destination="knh-D9-CuM" id="ES2-6e-vRx"/> | ||
22 | + <outlet property="titleView" destination="oVh-dv-f7a" id="dst-Ku-EFw"/> | ||
23 | + <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> | ||
24 | + </connections> | ||
25 | + </placeholder> | ||
26 | + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> | ||
27 | + <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT"> | ||
28 | + <rect key="frame" x="0.0" y="0.0" width="414" height="896"/> | ||
29 | + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
30 | + <subviews> | ||
31 | + <mapView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" mapType="standard" translatesAutoresizingMaskIntoConstraints="NO" id="F1c-ck-cQa"> | ||
32 | + <rect key="frame" x="0.0" y="0.0" width="414" height="896"/> | ||
33 | + </mapView> | ||
34 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Zc1-ew-qcl"> | ||
35 | + <rect key="frame" x="0.0" y="576" width="414" height="320"/> | ||
36 | + <subviews> | ||
37 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="INTERSPORT" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="oVh-dv-f7a" userLabel="Title"> | ||
38 | + <rect key="frame" x="30" y="20" width="304" height="30"/> | ||
39 | + <constraints> | ||
40 | + <constraint firstAttribute="height" constant="30" id="Gf2-VN-pNV"/> | ||
41 | + </constraints> | ||
42 | + <fontDescription key="fontDescription" type="boldSystem" pointSize="16"/> | ||
43 | + <nil key="textColor"/> | ||
44 | + <nil key="highlightedColor"/> | ||
45 | + </label> | ||
46 | + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="lEb-V2-2FC" userLabel="Close"> | ||
47 | + <rect key="frame" x="354" y="20" width="30" height="30"/> | ||
48 | + <constraints> | ||
49 | + <constraint firstAttribute="width" constant="30" id="gnd-qn-qo5"/> | ||
50 | + <constraint firstAttribute="height" constant="30" id="oeu-zs-b1J"/> | ||
51 | + </constraints> | ||
52 | + <state key="normal" title="Button"/> | ||
53 | + <buttonConfiguration key="configuration" style="plain"/> | ||
54 | + <connections> | ||
55 | + <action selector="closeButtomAction:" destination="-1" eventType="touchUpOutside" id="0NJ-C9-lhC"/> | ||
56 | + </connections> | ||
57 | + </button> | ||
58 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="F55-qj-PDc" userLabel="LineTop"> | ||
59 | + <rect key="frame" x="10" y="52" width="394" height="1"/> | ||
60 | + <constraints> | ||
61 | + <constraint firstAttribute="height" constant="1" id="18a-J3-UZm"/> | ||
62 | + </constraints> | ||
63 | + </view> | ||
64 | + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="eDV-A1-pOO" userLabel="NameLogo"> | ||
65 | + <rect key="frame" x="30" y="78" width="30" height="30"/> | ||
66 | + <constraints> | ||
67 | + <constraint firstAttribute="width" constant="30" id="IjG-Iw-fIq"/> | ||
68 | + <constraint firstAttribute="height" constant="30" id="LnS-gV-hIi"/> | ||
69 | + </constraints> | ||
70 | + </imageView> | ||
71 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" text="Intersport Χαλανδρίου" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="MsK-eg-pkk" userLabel="NameLabel"> | ||
72 | + <rect key="frame" x="70" y="74" width="314" height="18"/> | ||
73 | + <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="15"/> | ||
74 | + <nil key="textColor"/> | ||
75 | + <nil key="highlightedColor"/> | ||
76 | + </label> | ||
77 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="SHs-vI-jD7" userLabel="LineMiddle"> | ||
78 | + <rect key="frame" x="10" y="133" width="394" height="1"/> | ||
79 | + <color key="backgroundColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
80 | + <constraints> | ||
81 | + <constraint firstAttribute="height" constant="1" id="hMo-qH-T2k"/> | ||
82 | + </constraints> | ||
83 | + </view> | ||
84 | + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="KhY-nt-uwH" userLabel="phoneIcon"> | ||
85 | + <rect key="frame" x="30" y="164" width="20" height="20"/> | ||
86 | + <constraints> | ||
87 | + <constraint firstAttribute="height" constant="20" id="1rt-pN-Dld"/> | ||
88 | + <constraint firstAttribute="width" constant="20" id="3Rd-ir-r7Q"/> | ||
89 | + </constraints> | ||
90 | + </imageView> | ||
91 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" text="210-6230543" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="knh-D9-CuM" userLabel="phoneLabel"> | ||
92 | + <rect key="frame" x="60" y="154" width="324" height="40"/> | ||
93 | + <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="15"/> | ||
94 | + <nil key="textColor"/> | ||
95 | + <nil key="highlightedColor"/> | ||
96 | + </label> | ||
97 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="sAf-f8-8jc" userLabel="LineBottom"> | ||
98 | + <rect key="frame" x="10" y="214" width="394" height="1"/> | ||
99 | + <color key="backgroundColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
100 | + <constraints> | ||
101 | + <constraint firstAttribute="height" constant="1" id="vSP-6I-Lz6"/> | ||
102 | + </constraints> | ||
103 | + </view> | ||
104 | + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Bic-c4-J9E" userLabel="AddressIcon"> | ||
105 | + <rect key="frame" x="30" y="240.5" width="20" height="20"/> | ||
106 | + <constraints> | ||
107 | + <constraint firstAttribute="height" constant="20" id="A8o-MY-I6f"/> | ||
108 | + <constraint firstAttribute="width" constant="20" id="Xma-bp-6IZ"/> | ||
109 | + </constraints> | ||
110 | + </imageView> | ||
111 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" text="ΕΘΝΙΚΗΣ ΑΝΤΙΣΤΑΣΕΩΣ 4 41" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="syP-Hv-OGD" userLabel="AddressLabel"> | ||
112 | + <rect key="frame" x="60" y="235" width="247" height="31"/> | ||
113 | + <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="15"/> | ||
114 | + <nil key="textColor"/> | ||
115 | + <nil key="highlightedColor"/> | ||
116 | + </label> | ||
117 | + <button opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bw3-J9-wHr" userLabel="Directions"> | ||
118 | + <rect key="frame" x="317" y="235" width="67" height="31"/> | ||
119 | + <state key="normal" title="Button"/> | ||
120 | + <buttonConfiguration key="configuration" style="plain" title="Button"/> | ||
121 | + </button> | ||
122 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" text="Δευτέρα - Τετάρτη" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="u9U-A7-lbO" userLabel="HoursLabel"> | ||
123 | + <rect key="frame" x="70" y="94" width="314" height="18"/> | ||
124 | + <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
125 | + <color key="textColor" systemColor="systemGray2Color"/> | ||
126 | + <nil key="highlightedColor"/> | ||
127 | + </label> | ||
128 | + </subviews> | ||
129 | + <viewLayoutGuide key="safeArea" id="XS2-AR-3j9"/> | ||
130 | + <color key="backgroundColor" systemColor="systemBackgroundColor"/> | ||
131 | + <constraints> | ||
132 | + <constraint firstItem="u9U-A7-lbO" firstAttribute="leading" secondItem="eDV-A1-pOO" secondAttribute="trailing" constant="10" id="0Z2-uE-kRe"/> | ||
133 | + <constraint firstItem="XS2-AR-3j9" firstAttribute="trailing" secondItem="MsK-eg-pkk" secondAttribute="trailing" constant="30" id="1qW-i8-MRk"/> | ||
134 | + <constraint firstItem="XS2-AR-3j9" firstAttribute="bottom" secondItem="bw3-J9-wHr" secondAttribute="bottom" constant="20" id="3vm-pn-qpa"/> | ||
135 | + <constraint firstItem="lEb-V2-2FC" firstAttribute="top" secondItem="Zc1-ew-qcl" secondAttribute="top" constant="20" id="5bY-RU-ons"/> | ||
136 | + <constraint firstItem="knh-D9-CuM" firstAttribute="top" secondItem="SHs-vI-jD7" secondAttribute="bottom" constant="20" id="61g-5C-XbI"/> | ||
137 | + <constraint firstItem="sAf-f8-8jc" firstAttribute="leading" secondItem="XS2-AR-3j9" secondAttribute="leading" constant="10" id="7W6-cn-WdZ"/> | ||
138 | + <constraint firstItem="bw3-J9-wHr" firstAttribute="centerY" secondItem="Bic-c4-J9E" secondAttribute="centerY" id="AHw-0D-gur"/> | ||
139 | + <constraint firstItem="SHs-vI-jD7" firstAttribute="top" secondItem="eDV-A1-pOO" secondAttribute="bottom" constant="25" id="D8j-Qh-CHB"/> | ||
140 | + <constraint firstItem="KhY-nt-uwH" firstAttribute="leading" secondItem="XS2-AR-3j9" secondAttribute="leading" constant="30" id="Dok-gZ-xf1"/> | ||
141 | + <constraint firstItem="SHs-vI-jD7" firstAttribute="leading" secondItem="Zc1-ew-qcl" secondAttribute="leading" constant="10" id="Lj8-XN-HTj"/> | ||
142 | + <constraint firstAttribute="trailing" secondItem="F55-qj-PDc" secondAttribute="trailing" constant="10" id="MCj-ek-cnb"/> | ||
143 | + <constraint firstAttribute="trailing" secondItem="lEb-V2-2FC" secondAttribute="trailing" constant="30" id="NcX-rr-7OU"/> | ||
144 | + <constraint firstItem="syP-Hv-OGD" firstAttribute="leading" secondItem="Bic-c4-J9E" secondAttribute="trailing" constant="10" id="Rl4-cn-VTG"/> | ||
145 | + <constraint firstAttribute="trailing" secondItem="SHs-vI-jD7" secondAttribute="trailing" constant="10" id="Smw-Bv-Qlr"/> | ||
146 | + <constraint firstItem="lEb-V2-2FC" firstAttribute="leading" secondItem="oVh-dv-f7a" secondAttribute="trailing" constant="20" id="ULP-b9-ToV"/> | ||
147 | + <constraint firstItem="MsK-eg-pkk" firstAttribute="leading" secondItem="eDV-A1-pOO" secondAttribute="trailing" constant="10" id="Vg7-xl-oA2"/> | ||
148 | + <constraint firstItem="bw3-J9-wHr" firstAttribute="top" secondItem="sAf-f8-8jc" secondAttribute="bottom" constant="20" id="YhG-Th-URU"/> | ||
149 | + <constraint firstItem="oVh-dv-f7a" firstAttribute="leading" secondItem="Zc1-ew-qcl" secondAttribute="leading" constant="30" id="Zd1-SB-SlA"/> | ||
150 | + <constraint firstItem="KhY-nt-uwH" firstAttribute="top" secondItem="SHs-vI-jD7" secondAttribute="bottom" constant="30" id="a6s-J0-5rJ"/> | ||
151 | + <constraint firstItem="knh-D9-CuM" firstAttribute="leading" secondItem="KhY-nt-uwH" secondAttribute="trailing" constant="10" id="aeR-MK-4WB"/> | ||
152 | + <constraint firstItem="eDV-A1-pOO" firstAttribute="leading" secondItem="XS2-AR-3j9" secondAttribute="leading" constant="30" id="bkK-59-wXK"/> | ||
153 | + <constraint firstAttribute="height" constant="320" id="eIo-xG-BnE"/> | ||
154 | + <constraint firstItem="u9U-A7-lbO" firstAttribute="centerY" secondItem="eDV-A1-pOO" secondAttribute="centerY" constant="10" id="gFw-90-gXL"/> | ||
155 | + <constraint firstItem="oVh-dv-f7a" firstAttribute="top" secondItem="Zc1-ew-qcl" secondAttribute="top" constant="20" id="gIA-8o-Pv8"/> | ||
156 | + <constraint firstItem="XS2-AR-3j9" firstAttribute="trailing" secondItem="u9U-A7-lbO" secondAttribute="trailing" constant="30" id="hZz-zi-NzM"/> | ||
157 | + <constraint firstItem="XS2-AR-3j9" firstAttribute="trailing" secondItem="sAf-f8-8jc" secondAttribute="trailing" constant="10" id="hn5-U5-rvW"/> | ||
158 | + <constraint firstItem="sAf-f8-8jc" firstAttribute="top" secondItem="SHs-vI-jD7" secondAttribute="bottom" constant="80" id="htI-gJ-mSm"/> | ||
159 | + <constraint firstAttribute="trailing" secondItem="bw3-J9-wHr" secondAttribute="trailing" constant="30" id="hya-Ns-ldi"/> | ||
160 | + <constraint firstItem="Bic-c4-J9E" firstAttribute="leading" secondItem="Zc1-ew-qcl" secondAttribute="leading" constant="30" id="iUf-BZ-0kl"/> | ||
161 | + <constraint firstItem="F55-qj-PDc" firstAttribute="leading" secondItem="Zc1-ew-qcl" secondAttribute="leading" constant="10" id="jK6-2e-p3v"/> | ||
162 | + <constraint firstItem="XS2-AR-3j9" firstAttribute="bottom" secondItem="syP-Hv-OGD" secondAttribute="bottom" constant="20" id="luv-Gm-76K"/> | ||
163 | + <constraint firstItem="sAf-f8-8jc" firstAttribute="top" secondItem="knh-D9-CuM" secondAttribute="bottom" constant="20" id="m6I-QE-hbq"/> | ||
164 | + <constraint firstItem="eDV-A1-pOO" firstAttribute="top" secondItem="F55-qj-PDc" secondAttribute="bottom" constant="25" id="nAA-6u-CUo"/> | ||
165 | + <constraint firstItem="XS2-AR-3j9" firstAttribute="trailing" secondItem="knh-D9-CuM" secondAttribute="trailing" constant="30" id="pFB-4b-xx9"/> | ||
166 | + <constraint firstItem="MsK-eg-pkk" firstAttribute="centerY" secondItem="eDV-A1-pOO" secondAttribute="centerY" constant="-10" id="wpA-Xv-RdU"/> | ||
167 | + <constraint firstItem="syP-Hv-OGD" firstAttribute="top" secondItem="sAf-f8-8jc" secondAttribute="bottom" constant="20" id="xD6-zI-9Nl"/> | ||
168 | + <constraint firstItem="SHs-vI-jD7" firstAttribute="top" secondItem="F55-qj-PDc" secondAttribute="bottom" constant="80" id="xPl-UV-cMd"/> | ||
169 | + <constraint firstItem="bw3-J9-wHr" firstAttribute="leading" secondItem="syP-Hv-OGD" secondAttribute="trailing" constant="10" id="zAU-89-R2t"/> | ||
170 | + </constraints> | ||
171 | + </view> | ||
172 | + </subviews> | ||
173 | + <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> | ||
174 | + <color key="backgroundColor" systemColor="systemBackgroundColor"/> | ||
175 | + <constraints> | ||
176 | + <constraint firstItem="Zc1-ew-qcl" firstAttribute="trailing" secondItem="fnl-2z-Ty3" secondAttribute="trailing" id="0dW-tS-Vxe"/> | ||
177 | + <constraint firstItem="Zc1-ew-qcl" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="bottom" constant="-320" id="9av-UX-8VL"/> | ||
178 | + <constraint firstItem="F1c-ck-cQa" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="GSB-K2-QjT"/> | ||
179 | + <constraint firstItem="Zc1-ew-qcl" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="LKw-N3-e8B"/> | ||
180 | + <constraint firstItem="F1c-ck-cQa" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="bxr-2d-8JA"/> | ||
181 | + <constraint firstItem="F1c-ck-cQa" firstAttribute="trailing" secondItem="fnl-2z-Ty3" secondAttribute="trailing" id="n6F-h0-5ip"/> | ||
182 | + <constraint firstAttribute="bottom" secondItem="F1c-ck-cQa" secondAttribute="bottom" id="tGx-bL-7cM"/> | ||
183 | + </constraints> | ||
184 | + <point key="canvasLocation" x="137.68115942028987" y="120.53571428571428"/> | ||
185 | + </view> | ||
186 | + </objects> | ||
187 | + <resources> | ||
188 | + <systemColor name="systemBackgroundColor"> | ||
189 | + <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> | ||
190 | + </systemColor> | ||
191 | + <systemColor name="systemGray2Color"> | ||
192 | + <color red="0.68235294117647061" green="0.68235294117647061" blue="0.69803921568627447" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
193 | + </systemColor> | ||
194 | + </resources> | ||
195 | +</document> |
-
Please register or login to post a comment