我已在我的项目中实施了自定义Google Maps Marker InfoWindow,但是,我不知道在地图上添加多个标记时如何将额外数据传递到自定义InfoWindow。我创建了一个全局变量,在添加每个标记之前更新,但这不起作用。
到目前为止,这是我的代码:
...
NSString *markerDesc;
NSString *markerTimeLeft;
NSString *markerDistance;
...
- (UIView *) mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)marker
{
CustomInfoWindow *infoWind = [[[NSBundle mainBundle] loadNibNamed:@"InfoWindow" owner:self options:nil] objectAtIndex:0];
infoWind.lblTitle.text = marker.title;
infoWind.imgCategory.image = marker.icon;
infoWind.lblTimeLeft.text = markerTimeLeft;
infoWind.lblDistance.text = markerDistance;
infoWind.txtDescription.text = markerDesc;
return infoWind;
}
标题和图标显示正常。其他(markerTimeLeft,markerDistance,markerDesc)显示但显示每个标记的相同数据。我觉得这是因为markerInfoWindow委托只被调用一次,因此只加载那些变量一次。任何方向都非常感谢。
答案 0 :(得分:0)
作为解决方法,我使用我需要的额外数据设置marker.title和marker.snippet字段。我用我选择的分隔符符号分隔了小段数据,然后解析了字符串以填充我需要的其他字段。这足以解决我所面临的问题。