【问题标题】:Custom info window in IOS google maps sdkIOS谷歌地图sdk中的自定义信息窗口
【发布时间】:2014-09-01 06:13:13
【问题描述】:

作为 IOS 开发人员的新手,我真的很难获得一些基本的工作。

我需要在 google maps sdk for ios 中单击标记时显示这种自定义信息窗口。

任何帮助将不胜感激。

我已经看过第三方组件,但即使使用它们我也无法显示它。总有一个标题、sn-p、左图和右图部分。真正的问题是如何在窗口中获得金星评级,并在其旁边显示文字。

【问题讨论】:

标签: ios xcode google-maps maps callout


【解决方案1】:

随心所欲制作Xib...设置文本和图像

设置委托GMSMapViewDelegate

-(UIView *)mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)marker{

    CustomInfoWindow *infoWindow=[[[NSBundle mainBundle] loadNibNamed:@"InfoWindow" owner:self options:nil] objectAtIndex:0];  
     return infoWindow;

}

https://www.youtube.com/watch?v=ILiBXYscsyY 寻求更多帮助 看这个视频..由谷歌上传

【讨论】:

    【解决方案2】:

    我在 GoogleMapsSdk for iOS 中遇到了同样的信息窗口自定义问题很多天,很沮丧,我自己做了!

    可以在 Github Right here 上找到带有自定义操作代码的干净、完全可定制和自己的 UIControls

    编码愉快:)

    【讨论】:

    • 仅供参考,Google maps SDK for iOS V 2+ 中添加了实时渲染信息窗口支持。
    【解决方案3】:

    Swift 3.0 解决方案

    谷歌地图自定义信息窗口

    //empty the default infowindow
        func mapView(_ mapView: GMSMapView, markerInfoWindow marker: GMSMarker) -> UIView? {
            return UIView()
        }
    
        // reset custom infowindow whenever marker is tapped
        func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool {
    
            customInfoView.removeFromSuperview()
        //    customInfoView.button.addTarget(self, action: #selector(buttonTapped(_:)), for: .touchUpInside)
            self.view.addSubview(customInfoView)
    
            // Remember to return false
            // so marker event is still handled by delegate
            return false
        }
    
        // let the custom infowindow follows the camera
        func mapView(_ mapView: GMSMapView, didChange position: GMSCameraPosition) {
            if (locationMarker != nil){
                let location = locationMarker.position
                customInfoView.center = mapView.projection.point(for: location)
            }
        }
    
        // take care of the close event
        func mapView(_ mapView: GMSMapView, didTapAt coordinate: CLLocationCoordinate2D) {
            customInfoView.removeFromSuperview()
        }
    

    【讨论】:

    【解决方案4】:

    最终使用了 SMCalloutView @https://github.com/nfarina/calloutview

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-20
      • 2020-03-05
      • 1970-01-01
      • 1970-01-01
      • 2017-07-13
      • 1970-01-01
      • 2014-08-28
      • 2020-05-29
      相关资源
      最近更新 更多