Tah*_*ood 5 google-maps infowindow marker ios
我正在使用Google Maps SDK for iOS应用.我需要自定义markerinfowindow.我加
1) @interface MapsViewController : UIViewController GMSMapViewDelegate
2) mapView_.delegate = self;在viewdidload和
3)
- (UIView *)mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)marker{
UIView *InfoWindow = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 150, 200)];
UILabel *nameLabel = [[UILabel alloc]init];
nameLabel.text = @"hi";
[InfoWindow addSubview:nameLabel];
return InfoWindow;
}
Run Code Online (Sandbox Code Playgroud)
但是控制不会在markerInfoWindow中出现.
eta*_*luz 15
我有同样的问题 - 即使在设置委托后,也不会调用markerInfoWindow.结束这样做:
- (BOOL)mapView:(GMSMapView*)mapView didTapMarker:(GMSMarker*)marker
{
[mapView setSelectedMarker:marker];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
setSelectedMarker将强制对markerInfoWindow进行调用.
小智 2
要使用markerInfoWindow自定义标注的方法,您还需要使用infoWindowAnchor属性设置其锚点。
创建标记时设置锚点:
GMSMarker *marker = [[GMSMarker alloc] init];
marker.position = MARKER_POSITION;
marker.infoWindowAnchor = CGPointMake(0.44f, 0.45f);
marker.icon = [UIImage imageNamed:@"CustomMarkerImageName"];
Run Code Online (Sandbox Code Playgroud)
然后创建委托方法。
- (UIView *)mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)marker {
InfoWindow *view = [[[NSBundle mainBundle] loadNibNamed:@"InfoWindow" owner:self options:nil] objectAtIndex:0];
view.name.text = @"Place Name";
view.description.text = @"Place description";
view.phone.text = @"123 456 789";
view.placeImage.image = [UIImage imageNamed:@"customPlaceImage"];
view.placeImage.transform = CGAffineTransformMakeRotation(-.08);
return view;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4641 次 |
| 最近记录: |