Dimitris Togias

add custom annotation class and add direction handler

...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
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 */; }; 36 A080CFD628D170A20045A315 /* MapsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A080CFD428D170A20045A315 /* MapsViewController.swift */; };
37 A080CFD728D170A20045A315 /* MapsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A080CFD528D170A20045A315 /* MapsViewController.xib */; }; 37 A080CFD728D170A20045A315 /* MapsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A080CFD528D170A20045A315 /* MapsViewController.xib */; };
38 + A080CFDA28D1889A0045A315 /* MerchantAnnotation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A080CFD928D1889A0045A315 /* MerchantAnnotation.swift */; };
38 A09DBCAE2888BA8100DD50B0 /* SharingHistoryViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A09DBCAD2888BA8100DD50B0 /* SharingHistoryViewController.swift */; }; 39 A09DBCAE2888BA8100DD50B0 /* SharingHistoryViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A09DBCAD2888BA8100DD50B0 /* SharingHistoryViewController.swift */; };
39 E6A77853282933340045BBA8 /* SwiftWarplyFramework.docc in Sources */ = {isa = PBXBuildFile; fileRef = E6A77852282933340045BBA8 /* SwiftWarplyFramework.docc */; }; 40 E6A77853282933340045BBA8 /* SwiftWarplyFramework.docc in Sources */ = {isa = PBXBuildFile; fileRef = E6A77852282933340045BBA8 /* SwiftWarplyFramework.docc */; };
40 E6A77854282933340045BBA8 /* SwiftWarplyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = E6A77851282933340045BBA8 /* SwiftWarplyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; 41 E6A77854282933340045BBA8 /* SwiftWarplyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = E6A77851282933340045BBA8 /* SwiftWarplyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; };
...@@ -191,6 +192,7 @@ ...@@ -191,6 +192,7 @@
191 A079367D2885F60A00064122 /* AnalysisHeaderMessageViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnalysisHeaderMessageViewCell.swift; sourceTree = "<group>"; }; 192 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 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>"; }; 194 A080CFD528D170A20045A315 /* MapsViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MapsViewController.xib; sourceTree = "<group>"; };
195 + A080CFD928D1889A0045A315 /* MerchantAnnotation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MerchantAnnotation.swift; sourceTree = "<group>"; };
194 A09DBCAD2888BA8100DD50B0 /* SharingHistoryViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SharingHistoryViewController.swift; sourceTree = "<group>"; }; 196 A09DBCAD2888BA8100DD50B0 /* SharingHistoryViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SharingHistoryViewController.swift; 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>"; }; 197 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>"; };
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>"; }; 198 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>"; };
...@@ -382,6 +384,7 @@ ...@@ -382,6 +384,7 @@
382 isa = PBXGroup; 384 isa = PBXGroup;
383 children = ( 385 children = (
384 A07936722885E67400064122 /* AnalysisItem.swift */, 386 A07936722885E67400064122 /* AnalysisItem.swift */,
387 + A080CFD928D1889A0045A315 /* MerchantAnnotation.swift */,
385 ); 388 );
386 name = models; 389 name = models;
387 sourceTree = "<group>"; 390 sourceTree = "<group>";
...@@ -885,6 +888,7 @@ ...@@ -885,6 +888,7 @@
885 1E74838D28378AF40042A589 /* CouponBarcodeViewController.swift in Sources */, 888 1E74838D28378AF40042A589 /* CouponBarcodeViewController.swift in Sources */,
886 E6A778F0282933E60045BBA8 /* WLNativeAdsCollectionMode.m in Sources */, 889 E6A778F0282933E60045BBA8 /* WLNativeAdsCollectionMode.m in Sources */,
887 E6A7791C282933E60045BBA8 /* WLSMSActionHandlerDeprecated.m in Sources */, 890 E6A7791C282933E60045BBA8 /* WLSMSActionHandlerDeprecated.m in Sources */,
891 + A080CFDA28D1889A0045A315 /* MerchantAnnotation.swift in Sources */,
888 E6A77934282933E70045BBA8 /* UIActivityIndicatorView+AFNetworking.m in Sources */, 892 E6A77934282933E70045BBA8 /* UIActivityIndicatorView+AFNetworking.m in Sources */,
889 E6A77A34282BB3BB0045BBA8 /* ActiveGiftsViewController.swift in Sources */, 893 E6A77A34282BB3BB0045BBA8 /* ActiveGiftsViewController.swift in Sources */,
890 E6A778E6282933E60045BBA8 /* MyEmptyClass.swift in Sources */, 894 E6A778E6282933E60045BBA8 /* MyEmptyClass.swift in Sources */,
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
2 // MapsViewController.swift 2 // MapsViewController.swift
3 // SwiftWarplyFramework 3 // SwiftWarplyFramework
4 // 4 //
5 -// Created by Βασιλης Σκουρας on 14/9/22. 5 +// Created by Βασιλης Σκουρας on 10/9/22.
6 // 6 //
7 7
8 import UIKit 8 import UIKit
...@@ -110,15 +110,18 @@ class MapsViewController: UIViewController, MKMapViewDelegate { ...@@ -110,15 +110,18 @@ class MapsViewController: UIViewController, MKMapViewDelegate {
110 hidePinDetailsView() 110 hidePinDetailsView()
111 } 111 }
112 112
113 + @IBAction func directionsButtomAction(_ sender: Any) {
114 +
115 + }
116 +
113 private func loadMapPins() { 117 private func loadMapPins() {
114 for item in merchantsArray { 118 for item in merchantsArray {
115 - let pin = MKPointAnnotation() 119 + let pin = MerchantAnnotation(item)
116 - pin.coordinate = CLLocationCoordinate2D(latitude: item._latitude, longitude: item._longitude)
117 mapView.addAnnotation(pin) 120 mapView.addAnnotation(pin)
118 } 121 }
119 } 122 }
120 123
121 - private func loadPinDetailsView() { 124 + private func loadPinDetailsView(_ annotation: MerchantAnnotation) {
122 self.titleView.text = "INTERSPORT" 125 self.titleView.text = "INTERSPORT"
123 self.nameImageView.image = UIImage(named: "intersport") 126 self.nameImageView.image = UIImage(named: "intersport")
124 self.nameView.text = "Intersport Χαλάνδρι" 127 self.nameView.text = "Intersport Χαλάνδρι"
...@@ -162,7 +165,8 @@ class MapsViewController: UIViewController, MKMapViewDelegate { ...@@ -162,7 +165,8 @@ class MapsViewController: UIViewController, MKMapViewDelegate {
162 } 165 }
163 166
164 func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) { 167 func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
165 - loadPinDetailsView() 168 + let merchant = view.annotation as? MerchantAnnotation
169 + loadPinDetailsView(merchant!)
166 showPinDetailsView() 170 showPinDetailsView()
167 } 171 }
168 172
......
...@@ -118,6 +118,9 @@ ...@@ -118,6 +118,9 @@
118 <rect key="frame" x="317" y="235" width="67" height="31"/> 118 <rect key="frame" x="317" y="235" width="67" height="31"/>
119 <state key="normal" title="Button"/> 119 <state key="normal" title="Button"/>
120 <buttonConfiguration key="configuration" style="plain" title="Button"/> 120 <buttonConfiguration key="configuration" style="plain" title="Button"/>
121 + <connections>
122 + <action selector="directionsButtomAction:" destination="-1" eventType="touchUpInside" id="nMR-Jk-Wm4"/>
123 + </connections>
121 </button> 124 </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"> 125 <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"/> 126 <rect key="frame" x="70" y="94" width="314" height="18"/>
......
1 +//
2 +// MerchantAnnotation.swift
3 +// SwiftWarplyFramework
4 +//
5 +// Created by Βασιλης Σκουρας on 11/9/22.
6 +//
7 +
8 +import Foundation
9 +import MapKit
10 +
11 +class MerchantAnnotation: NSObject, MKAnnotation {
12 + let model: swiftApi.MerchantModel
13 + let coordinate: CLLocationCoordinate2D
14 +
15 + init(_ model: swiftApi.MerchantModel) {
16 + self.model = model
17 + self.coordinate = CLLocationCoordinate2D(latitude: model._latitude, longitude: model._longitude)
18 +
19 + super.init()
20 + }
21 +}