Custom info window in IOS google maps sdk

依然范特西╮ 提交于 2019-11-28 08:47:38

问题


being a newby IOS developer, I'm really struggling to get something basic to work.

I have a need to display this kind of custom info window upon a marker click in the google maps sdk for ios.

Any help would be appreciated.

I've already seen the third party components, but even with them I cannot get this to display. There is always a title, snippet, left image and right image part. The real question is how do you get the gold star rating in the window, with the text next to it.


回答1:


I was suffering from the same problem of Info window customization in GoogleMapsSdk for iOS for a lot of days, got frustrated & did it my self!

Clean, Completely customizable & Own UIControls with your custom actions code can be found on Github Right here

Happy coding :)




回答2:


Make Xib as you want...set Text and image

set delegate 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 for more help see this video..Uploded by google




回答3:


ended up using SMCalloutView @ https://github.com/nfarina/calloutview




回答4:


Swift 3.0 Solution

Google Map CustomInfoWindow

//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()
    }


来源:https://stackoverflow.com/questions/25599791/custom-info-window-in-ios-google-maps-sdk

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!