Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func mapView(_ map: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
- if (annotation is MKUserLocation) {
- return nil
- }
- let identifier = "pinAnnotation"
- // In particular I am not sure what the code below does
- if let pin = annotation as? ColorPointAnnotation {
- if let view = map.dequeueReusableAnnotationView(withIdentifier: identifier) as? MKPinAnnotationView {
- view.annotation = annotation
- view.pinTintColor = pin.color ?? .purple
- return view
- } else {
- let view = MKPinAnnotationView(annotation: annotation, reuseIdentifier: identifier)
- view.isEnabled = true
- view.canShowCallout = true
- view.pinTintColor = pin.color ?? .purple
- let btn = UIButton(type: .detailDisclosure)
- view.rightCalloutAccessoryView = btn
- if view.pinTintColor == .red || view.pinTintColor == .green {
- let button = UIButton(frame: CGRect(x: 0, y: 0, width: 30, height: 30))
- button.setBackgroundImage(UIImage(named: "car"), for: .normal)
- button.addTarget(self, action: #selector(MapVC.getDirections), for: .touchUpInside)
- view.leftCalloutAccessoryView = button
- } else {
- let button = UIButton(frame: CGRect(x: 0, y: 0, width: 30, height: 30))
- button.setBackgroundImage(UIImage(named: "other"), for: .normal)
- button.addTarget(self, action: #selector(MapVC.other), for: .touchUpInside)
- view.leftCalloutAccessoryView = button
- }
- return view
- }
- }
- if let annotationView = map.dequeueReusableAnnotationView(withIdentifier: identifier) {
- annotationView.annotation = annotation
- return annotationView
- } else {
- let annotationView = MKPinAnnotationView(annotation:annotation, reuseIdentifier: identifier)
- annotationView.isEnabled = true
- annotationView.canShowCallout = true
- let btn = UIButton(type: .detailDisclosure)
- annotationView.rightCalloutAccessoryView = btn
- if annotationView.pinTintColor == .red || annotationView.pinTintColor == .green {
- let smallSquare = CGSize(width: 120, height: 120)
- let button = UIButton(frame: CGRect(origin: CGPoint(x: 0,y :0), size: smallSquare))
- button.setBackgroundImage(UIImage(named: "car"), for: .normal)
- button.addTarget(self, action: #selector(MapVC.getDirections), for: .touchUpInside)
- annotationView.leftCalloutAccessoryView = button
- } else {
- let button = UIButton(frame: CGRect(x: 0, y: 0, width: 30, height: 30))
- button.setBackgroundImage(UIImage(named: "other"), for: .normal)
- button.addTarget(self, action: #selector(MapVC.other), for: .touchUpInside)
- annotationView.leftCalloutAccessoryView = button
- }
- return annotationView
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement