我正在关注本教程:https://www.mapbox.com/mapbox-ios-sdk/examples/marker-custom-image/我有一个网络API,我从中得到纬度/经度/名称/ imageURL。
您可以在此处查看我的代码:http://pastebin.com/eGtYSXR8
在第107行,我想循环通过响应并创建标记,同时为标记分配自定义图像,但我不知道如何做到这一点。我是Obj-C的新手,所以我不知道这行被调用的地方或函数名称是什么:
- (RMMapLayer *)mapView:(RMMapView *)mapView layerForAnnotation:(RMAnnotation *)annotation
有人能指出我正确的方向吗?我理解如何在MapBox上创建标记,但图像似乎是在不同的函数中创建的,无法传递变量。
答案 0 :(得分:1)
您也应该阅读Cocoa中的委托模式,并且可以使用-[RMAnnotation userInfo]
来传递可以在委托回调中使用的注释的任意信息。
答案 1 :(得分:0)
首先,您应该创建RMAnnotation并将此注释添加到地图中。
_userLocation = [RMAnnotation annotationWithMapView:_mapView
coordinate:CLLocationCoordinate2DMake(0.011774,0.002308)
andTitle:nil];
[_mapView addAnnotation:_userLocation];
第二
- (RMMapLayer *)mapView:(RMMapView *)mapView layerForAnnotation:(RMAnnotation *)annotation
{
marker = [[RMMarker alloc] initWithUIImage:[UIImage imageNamed:@"userPin"]];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 80, 80)];
imageView.contentMode = UIViewContentModeScaleAspectFit;
marker.leftCalloutAccessoryView = imageView;
return marker;
}