问题描述
我在我的iPhone应用程序中使用MKMapview。
I am using MKMapview in my iPhone app.
如何在MKMapkit框架中的注释中指定值?
How can I assign values in annotation in MKMapkit Framework?
推荐答案
您可以使用一个 UIView
,一个 UIImageView
和一个Label来显示不同的值来为每个注释使用自定义视图。这将在方法 - (MKAnnotationView *)mapView:(MKMapView *)newMapView viewForAnnotation :((id)newAnnotation
的方法中完成。相对于 UIImageView
,您必须使用透明颜色的 UIView
双倍大小,以使更准确的放大视图缩小地图视图。
You can use custom view for each annotation with one UIView
, one UIImageView
and one Label to display different value. This will be done within the method - (MKAnnotationView *)mapView:(MKMapView *)newMapView viewForAnnotation:(id )newAnnotation
. You have to take UIView
double in size with transparent color with respect to UIImageView
to make more precise view on zoom in and zoom out in mapview.
代码-----
-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
static NSString * const kPinAnnotationIdentifier = @"PinIdentifier";
if(annotation == self._mapView.userLocation)
{
return nil;
}
MyAnnotation *myAnnotation = (MyAnnotation *)annotation;
MKAnnotationView *newAnnotation = (MKAnnotationView*)[self._mapView dequeueReusableAnnotationViewWithIdentifier:kPinAnnotationIdentifier];
if(!newAnnotation){
newAnnotation = [[MKAnnotationView alloc] initWithAnnotation:myAnnotation reuseIdentifier:@"userloc"];
}
NSDictionary *dict=[alertInfoArray objectAtIndex:myAnnotation.ann_tag];
UIView *anView=[[UIView alloc] init];
anView.backgroundColor=[UIColor clearColor];
UIImageView *bgImg=[[UIImageView alloc] init];
bgImg.image=[UIImage imageNamed:@""];
bgImg.backgroundColor=[UIColor clearColor];
UIImageView *imgView=[[UIImageView alloc] init];
imgView.tag=myAnnotation.ann_tag;
UILabel *lblName=[[UILabel alloc] init];
lblName.font=[UIFont systemFontOfSize:12];
lblName.textAlignment=UITextAlignmentCenter;
lblName.textColor=[UIColor whiteColor];
lblName.backgroundColor=[UIColor clearColor];
lblName.text=TEXT YOU WANT ;
newAnnotation.frame=CGRectMake(0, 0, 70, 212);
anView.frame=CGRectMake(0, 0, 70, 212);
bgImg.frame=CGRectMake(0, 0, 70, 106);
bgImg.image=[UIImage imageNamed:@"thumb-needhelp.png"];
imgView.frame=CGRectMake(8,25,55,48);
imgView.image=[UIImage imageNamed:@"girl-default.png"];
lblName.frame=CGRectMake(5,79,60,10);
[anView addSubview:bgImg];
[bgImg release];
[anView addSubview:imgView];
[imgView release];
[newAnnotation addSubview:anView];
[anView release];
newAnnotation.canShowCallout=YES;
[newAnnotation setEnabled:YES];
return newAnnotation;
}
希望这有帮助。
这篇关于如何在Mapview中添加注释,使用iPhone中的图像和标签?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!