title: Mapbox delegate calloutViewTapped don't work
body: <p>I create <code>CustomCalloutView</code> with protocol <code>MGLCalloutView</code> </p>
  
  <p>my <code>CustomCalloutView</code></p>
  
  <pre><code>class CustomAnnotation: NSObject, MGLAnnotation {
  
  var coordinate: CLLocationCoordinate2D
  var title: String?
  var subtitle: String?
  var image: UIImage
  
  init(coordinate: CLLocationCoordinate2D, title: String, subtitle: String, image: UIImage) {
      self.coordinate = coordinate
      self.title = title
      self.subtitle = subtitle
      self.image = image
  }
  }
  import Foundation
  import Mapbox
  
  class CustomCalloutView: UIView, MGLCalloutView {
  
  var representedObject: MGLAnnotation
  
  lazy var leftAccessoryView = UIView()
  lazy var rightAccessoryView = UIView()
  
  weak var delegate: MGLCalloutViewDelegate?
  
  //MARK: Subviews -
  let titleLabel:UILabel = {
      let label = UILabel()
      label.translatesAutoresizingMaskIntoConstraints = false
      label.font = UIFont.boldSystemFont(ofSize: 15.0)
      return label
  }()
  
  let subtitleLabel:UILabel = {
      let label = UILabel()
      label.translatesAutoresizingMaskIntoConstraints = false
      return label
  }()
  
  let imageView:UIImageView = {
      let imageview = UIImageView(frame: CGRect(x: 0, y: 0, width: 25, height: 25))
      imageview.translatesAutoresizingMaskIntoConstraints = false
      imageview.contentMode = .scaleAspectFit
      return imageview
  }()
  
  required init(annotation: CustomAnnotation) {
      self.representedObject = annotation
      super.init(frame: CGRect(origin: CGPoint(x: 0, y: 0), size: CGSize(width: UIScreen.main.bounds.width * 0.5, height: 80.0)))
  
      self.titleLabel.text = self.representedObject.title ?? ""
      self.subtitleLabel.text = self.representedObject.subtitle ?? ""
      self.imageView.image = annotation.image
      setup()
  }
  
  required init?(coder decoder: NSCoder) {
      fatalError("init(coder:) has not been implemented")
  }
  
  func setup() {
      // setup this view's properties
      self.backgroundColor = UIColor.white
  
      // And their Subviews
      self.addSubview(titleLabel)
      self.addSubview(subtitleLabel)
      self.addSubview(imageView)
  
      // Add Constraints to subviews
      let spacing:CGFloat = 8.0
  
      imageView.topAnchor.constraint(equalTo: self.topAnchor, constant: spacing).isActive = true
      imageView.leftAnchor.constraint(equalTo: self.leftAnchor, constant: spacing).isActive = true
      imageView.heightAnchor.constraint(equalToConstant: 25.0).isActive = true
      imageView.widthAnchor.constraint(equalToConstant: 25.0).isActive = true
  
      titleLabel.topAnchor.constraint(equalTo: self.topAnchor, constant: spacing).isActive = true
      titleLabel.leftAnchor.constraint(equalTo: self.imageView.rightAnchor, constant: spacing * 2).isActive = true
      titleLabel.rightAnchor.constraint(equalTo: self.rightAnchor, constant: -spacing).isActive = true
      titleLabel.heightAnchor.constraint(equalToConstant: 25.0).isActive = true
  
      subtitleLabel.topAnchor.constraint(equalTo: self.titleLabel.bottomAnchor, constant: spacing).isActive = true
      subtitleLabel.leftAnchor.constraint(equalTo: self.leftAnchor, constant: spacing).isActive = true
      subtitleLabel.rightAnchor.constraint(equalTo: self.rightAnchor, constant: -spacing).isActive = true
      subtitleLabel.heightAnchor.constraint(equalToConstant: 20.0).isActive = true
  }
  
  
  func presentCallout(from rect: CGRect, in view: UIView, constrainedTo constrainedRect: CGRect, animated: Bool) {
      //Always, Slightly above center
      self.center = view.center.applying(CGAffineTransform(translationX: 0, y: -self.frame.height))
      view.addSubview(self)
  
  }
  
  func dismissCallout(animated: Bool) {
      if (animated){
          //do something cool
          removeFromSuperview()
      } else {
              removeFromSuperview()
          }
      }
  }
  </code></pre>
  
  <p>my <code>ViewController</code></p>
  
  <pre><code>    class ViewController: UIViewController {
  
      @IBOutlet weak var mapView: MGLMapView!
  
      override func viewDidLoad() {
          super.viewDidLoad()
  
          setMapView()
      }
  
      fileprivate func setMapView() {
          mapView.setUserTrackingMode(.follow, animated: true)
          //mapView.setUserTrackingMode(.follow, animated: true)
  
          mapView.setCenter(CLLocationCoordinate2D(latitude: 42.9666308, longitude: 47.5126285), zoomLevel: 12, animated: false)
          view.addSubview(mapView)
  
          mapView.delegate = self
  
          let hello = MGLPointAnnotation()
          hello.coordinate = CLLocationCoordinate2D(latitude: 42.9666308, longitude: 47.5126285)
          hello.title = "Hello world!"
          hello.subtitle = "Welcome to my marker"
  
          mapView.addAnnotation(hello)
      }
  }
  
  extension ViewController: MGLMapViewDelegate {
      // Use the default marker. See also: our view annotation or custom marker examples.
      func mapView(_ mapView: MGLMapView, viewFor annotation: MGLAnnotation) -&gt; MGLAnnotationView? {
          return nil
      }
  
      // Allow callout view to appear when an annotation is tapped.
      func mapView(_ mapView: MGLMapView, annotationCanShowCallout annotation: MGLAnnotation) -&gt; Bool {
          return true
      }
  
      func mapView(_ mapView: MGLMapView, calloutViewFor annotation: MGLAnnotation) -&gt; MGLCalloutView? {
          let title = annotation.title ?? nil
          let subtitle = annotation.subtitle ?? nil
          let image = UIImage(named: "star")!
          let customAnnotation = CustomAnnotation(coordinate: annotation.coordinate, title: title ?? "no title", subtitle: subtitle ?? "no subtitle", image: image)
  
          let customView = CustomCalloutView(annotation: customAnnotation)
          customView.delegate = self
  
          return customView
      }
  }
  
      extension ViewController: MGLCalloutViewDelegate {
          func calloutViewTapped(_ calloutView: UIView &amp; MGLCalloutView) {
              print("tap callout View")
          }
  
          func calloutViewDidAppear(_ calloutView: UIView &amp; MGLCalloutView) {
              print("calloutViewDidAppear")
          }
  
          func calloutViewWillAppear(_ calloutView: UIView &amp; MGLCalloutView) {
              print("calloutViewWillAppear")
          }
  
          func calloutViewShouldHighlight(_ calloutView: UIView &amp; MGLCalloutView) -&gt; Bool {
              print("calloutViewShouldHighlight")
              return true
          }
      }
  </code></pre>
  
  <p>why after I tap to calloutView </p>
  
  <pre><code>  func calloutViewTapped(_ calloutView: UIView &amp; MGLCalloutView) {
          print("tap callout View")
      }
  </code></pre>
  
  <p>doesn't work ?</p>
  
  <p>screen colloutView </p>
  
  <p><a href="https://i.stack.imgur.com/9JzJo.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/9JzJo.jpg" alt="enter image description here"></a></p>