自定义注释视图未显示在地图上
Custom Annotation view is not displaying on the map
您好,我正在尝试在地图视图中创建自定义注释。在地图视图中,当用户单击图钉时,我在地图上有多个图钉制造商,我想显示一些文本和按钮,因此尝试创建一个自定义注释视图,但它不起作用。
我的代码
#import <MapKit/MapKit.h>
#import <GoogleMaps/GoogleMaps.h>
@interface myviewcon : UIViewController<MKMapViewDelegate>
@property (strong, nonatomic) IBOutlet MKMapView *mpview;
@end
viewdidload 中我的 MKPointAnnotation 代码
for (NSDictionary *dic in [jsonArray1 valueForKey:@"houses"]) {
MKPointAnnotation *annotation = [[MKPointAnnotation alloc]init];
NSString *name=[dic valueForKey:@"building_name"];
CLLocationCoordinate2D placeCoord;
placeCoord.latitude=[[dic objectForKey:@"lat"] doubleValue];
placeCoord.longitude=[[dic objectForKey:@"lng"] doubleValue];
[annotation setCoordinate:placeCoord];
[annotation setTitle:name];
[mpview addAnnotation:annotation];
}
还有我的自定义注释查看代码
- (MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:(id <MKAnnotation>)annotation{
MKAnnotationView *anview = nil;
UIButton *btnViewVenue = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
anview.rightCalloutAccessoryView=btnViewVenue;
anview.enabled = YES;
anview.canShowCallout = YES;
anview.multipleTouchEnabled = NO;
return anview;
}
当用户点击地图上的图钉制作器时,我使用上面的代码制作了自定义视图我已经用文本和按钮制作了视图我已经厌倦了这样但是它不起作用我已经检查了委托的断点正在通话,但它不工作请告诉如何解决这个问题。
提前致谢。
要自定义注释,请使用:
-(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:(id <MKAnnotation>)annotation
这里只添加你需要的子视图
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view {
UIView *test = [[UIView alloc]initWithFrame:CGRectMake(view.frame.origin.x - 12.5, view.frame.origin.y - 45, 50, 50)];
test.backgroundColor = [UIColor redColor];
[_mapView addSubview:test];
}
这里只需从 superView 中删除您的自定义 callOutView
- (void)mapView:(MKMapView *)mapView didDeselectAnnotationView:(MKAnnotationView *)view
您好,我正在尝试在地图视图中创建自定义注释。在地图视图中,当用户单击图钉时,我在地图上有多个图钉制造商,我想显示一些文本和按钮,因此尝试创建一个自定义注释视图,但它不起作用。
我的代码
#import <MapKit/MapKit.h>
#import <GoogleMaps/GoogleMaps.h>
@interface myviewcon : UIViewController<MKMapViewDelegate>
@property (strong, nonatomic) IBOutlet MKMapView *mpview;
@end
viewdidload 中我的 MKPointAnnotation 代码
for (NSDictionary *dic in [jsonArray1 valueForKey:@"houses"]) {
MKPointAnnotation *annotation = [[MKPointAnnotation alloc]init];
NSString *name=[dic valueForKey:@"building_name"];
CLLocationCoordinate2D placeCoord;
placeCoord.latitude=[[dic objectForKey:@"lat"] doubleValue];
placeCoord.longitude=[[dic objectForKey:@"lng"] doubleValue];
[annotation setCoordinate:placeCoord];
[annotation setTitle:name];
[mpview addAnnotation:annotation];
}
还有我的自定义注释查看代码
- (MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:(id <MKAnnotation>)annotation{
MKAnnotationView *anview = nil;
UIButton *btnViewVenue = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
anview.rightCalloutAccessoryView=btnViewVenue;
anview.enabled = YES;
anview.canShowCallout = YES;
anview.multipleTouchEnabled = NO;
return anview;
}
当用户点击地图上的图钉制作器时,我使用上面的代码制作了自定义视图我已经用文本和按钮制作了视图我已经厌倦了这样但是它不起作用我已经检查了委托的断点正在通话,但它不工作请告诉如何解决这个问题。
提前致谢。
要自定义注释,请使用:
-(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:(id <MKAnnotation>)annotation
这里只添加你需要的子视图
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view {
UIView *test = [[UIView alloc]initWithFrame:CGRectMake(view.frame.origin.x - 12.5, view.frame.origin.y - 45, 50, 50)];
test.backgroundColor = [UIColor redColor];
[_mapView addSubview:test];
}
这里只需从 superView 中删除您的自定义 callOutView
- (void)mapView:(MKMapView *)mapView didDeselectAnnotationView:(MKAnnotationView *)view