作为 IOS 开发人员的新手,我真的很难获得一些基本的工作。
我需要在 google maps sdk for ios 中单击标记后显示这种自定义信息窗口。
任何帮助,将不胜感激。
我已经看过第三方组件,但即使有了它们,我也无法显示它。总有一个标题、片段、左图和右图部分。真正的问题是如何在窗口中获得金星评级,并在其旁边显示文字。
作为 IOS 开发人员的新手,我真的很难获得一些基本的工作。
我需要在 google maps sdk for ios 中单击标记后显示这种自定义信息窗口。
任何帮助,将不胜感激。
我已经看过第三方组件,但即使有了它们,我也无法显示它。总有一个标题、片段、左图和右图部分。真正的问题是如何在窗口中获得金星评级,并在其旁边显示文字。
随心所欲制作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 如需更多帮助,请查看此视频。由 google 上传
我在 GoogleMapsSdk for iOS 中遇到了同样的信息窗口自定义问题很多天,很沮丧,我自己做了!
可以在 Github 上找到带有自定义操作代码的干净、完全可定制和自己的 UIControls 就在这里
快乐编码:)
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()
}
最终使用 SMCalloutView @ https://github.com/nfarina/calloutview