如何使用Swift 3自定义googlemap infoWindow

时间:2016-11-16 14:17:10

标签: ios google-maps swift3 infowindow

Xcode版本: 8.1

目标:

用自定义替换本地infoWindow

问题:

  1. 当我点击标记时,我的自定义infoWindow没有显示,而是原生的, 或
  2. 主题1:如果我不删除myView.delegate = self,则显示信号SIGABRT(参见我的代码和我的研究#21)
  3. 我做了什么:

    1. 使用我的自定义infoWindow设计创建了.swift文件和.xib文件。
    2. 将mapView函数插入ViewController.swift:

      override func viewDidLoad() {
          super.viewDidLoad()
      

      ...

          let camera = GMSCameraPosition.camera(withLatitude: latitude,
                                                longitude: Longitude, zoom: 16)
          let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
          mapView.delegate = self  // Thread 1:signal SIGABRT shown if i add this line
          mapView.isMyLocationEnabled = true
          self.view = mapView
      
          let marker = GMSMarker()
          marker.position = CLLocationCoordinate2DMake(latitude, Longitude)
          marker.title = "Me"
          marker.map = mapView
          mapView.selectedMarker = marker
      }
      
      func mapView(_ mapView: GMSMapView, markerInfoWindow marker: GMSMarker) -> UIView? {
          let infoWindow = Bundle.main.loadNibNamed("CustomInfoWindow", owner: self.view, options: nil)!.first! as! CustomInfoWindow
          infoWindow.title.text = marker.title
          return infoWindow
      }
      
    3. 我的研究:

      1. https://developers.google.com/maps/documentation/ios-sdk/marker
      2. https://developers.google.com/maps/documentation/ios-sdk/reference/protocol_g_m_s_map_view_delegate-p
      3. https://forums.developer.apple.com/thread/8462
      4. http://kevinxh.github.io/swift/custom-and-interactive-googlemaps-ios-sdk-infowindow.html
      5. https://productforums.google.com/forum/#!topic/maps/w0sP7r3XAF4
      6. Custom InfoWindow for marker Google Maps SDK, Swift 2.0
      7. https://www.youtube.com/watch?v=ILiBXYscsyY
      8. Custom annotation view in Google Maps SDK
      9. Creating custom info window in swift with the Google maps iOS sdk?
      10. How to show a Info window in iOS Google maps without tapping on Marker?
      11. Custom info window in IOS google maps sdk
      12. IOS Google Map Custom InfoWindow Xib error
      13. Google Maps Info window's resizing based on the internal content
      14. Custom Info Window for Google Maps
      15. Custom InfoWindows issue -Google Maps iOS SDK-
      16. How to customize the InfoWindow of google map iOS SDK?
      17. swift 3 google maps custom infowindow
      18. How to initialise a UIView Class with a xib file in Swift, iOS
      19. https://github.com/ziyang0621/GoogleMaps-Swift/blob/master/GoogleMapSwift/ViewController.swift
      20. https://github.com/ryanmaxwell/GoogleMapsCalloutView
      21. Implementing custom markerInfoWindow in swift not working
      22. https://codedump.io/share/hh7CO7c2j3PI/1/custom-infowindow-for-marker-google-maps-sdk-swift-20

1 个答案:

答案 0 :(得分:4)

您是否实施了GMSMapViewDelegate?

ViewController: GMSMapViewDelegate {

   ...

}

似乎是您收到错误(崩溃),因为您将委托设置为self,但您的控制器不符合该协议。