作为一名新的IOS开发人员,我真的很难找到基本工作的东西。
我需要在Google地图sdk for ios上点击标记时显示这种自定义信息窗口。
任何帮助都将不胜感激。
我已经看过第三方组件,但即使有了它们,我也无法显示它。始终有标题,片段,左图像和右图像部分。真正的问题是如何在窗口中获得金星评级,旁边有文字。
答案 0 :(得分:4)
我在GoogleMapsSdk for iOS中遇到了同样的信息窗口定制问题很多天,感到很沮丧做到了我自己!
清洁,完全可定制&您可以在Github Right here
上找到带有自定义操作代码的自己的UIControl快乐编码:)
答案 1 :(得分:3)
根据需要制作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 :(得分:1)
最终使用了SMCalloutView @ https://github.com/nfarina/calloutview
答案 3 :(得分:1)
Swift 3.0解决方案
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()
}