4
A
回答
16
可以使用自定義視圖每個註釋與一個UIView
,一個UIImageView
和一個標籤來顯示不同的值。這將在方法- (MKAnnotationView *)mapView:(MKMapView *)newMapView viewForAnnotation:(id)newAnnotation
內完成。你必須採取UIView
尺寸的雙倍透明顏色相對於UIImageView
更準確地查看放大和縮小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;
}
希望這有助於。
6
- 創建一個自定義的註釋類(
MKAnnotation
) - 創建自定義AnnotationView類(
MKAnnotationView
)
確保您在定義標題,背景圖像和自定義註釋的其他元素AnnotationView
類作爲屬性。
重寫以下方法,並設置您在
AnnotationView
類中定義的屬性的值。- (MKAnnotationView*) mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation{ if ([<Object of CustomAnnotation class> isKindOfClass:[MKUserLocation class]]) return nil; CustomAnnotation* custom_anno = (CustomAnnotation*)[mapView dequeueReusableAnnotationViewWithIdentifier:@"custom_annotation"]; if (!custom_anno){ custom_anno = [[CustomAnnotation alloc] initWithAnnotation:annotation reuseIdentifier:@"custom_annotation"]; custom_anno.frame = CGRectMake(0, 0, 250, 57.5); custom_anno.canShowCallout = NO;//CHange if you want to change callout behaviour (thats is it's abilty to apper). I set it top no because i did not want a callout. UIImageView* icon = [[UIImageView alloc] initWithFrame:CGRectMake(5, 5, 40, 40)]; [icon setImageWithURL:<your image> placeholderImage:<your placeholder image>];//placeholder image = nil if you do not want one. icon.backgroundColor = [UIColor lightGrayColor]; UILabel* name = [[UILabel alloc] initWithFrame:CGRectMake(50, 5, 200, 20)]; name.text = nameValue; UILabel* category = [[UILabel alloc] initWithFrame:CGRectMake(50, 25, 200, 20)]; category.text = otherValue; [custom_anno addSubview:icon]; [custom_anno addSubview:name]; [custom_anno addSubview:category]; } return custom_anno; }
我的自定義註釋類是'Annotation',自定義註釋視圖類是'CustomAnnotation'。根據您的需求改變。
之後,只需創建一個Annotation
類的對象,並使用它。
編輯:
確保您覆蓋follwing方法詮釋他的自定義註解視圖類:
在.H:
- (id)initWithAnnotation:(id<MKAnnotation>)annotation reuseIdentifier:(NSString *)reuseIdentifier;
中的m:
- (id)initWithAnnotation:(id<MKAnnotation>)annotation reuseIdentifier:(NSString *)reuseIdentifier{
self = [super initWithAnnotation:annotation reuseIdentifier:reuseIdentifier];
if (self) {
}
return self;
}
編輯2:
你可以用它在你的視圖控制器是這樣的:
MKMapView* cellMap = [[MKMapView alloc] initWithFrame:CGRectMake(0, 0, 290, 100)];
cellMap.delegate = self;
cellMap.userInteractionEnabled = NO;
CLLocationCoordinate2D center = CLLocationCoordinate2DMake(<your coordinates>);
MKCoordinateSpan span = MKCoordinateSpanMake(0.04, 0.04);
MKCoordinateRegion region = MKCoordinateRegionMake(center, span);
cellMap.showsUserLocation = NO;
[cellMap setRegion:region animated:YES];
Annotation* anon = [[Annotation alloc] init];
anon.coordinate = center;
[cellMap addAnnotation:anon];
[checkIn addSubview:cellMap];
相關問題
- 1. 如何在iphone應用中的Mapview中添加多個註釋
- 2. 如何使用swift ios在mapview中添加兩個註釋?
- 3. 如何在iPhone中添加地圖視圖中心的註釋?
- 4. 如何在地圖視圖中添加註釋在Iphone
- 5. 如何在mapview中添加自定義標註視圖
- 6. 如何在Heatmap中添加行標籤(註釋)
- 7. 如何在Struts標籤中添加註釋?
- 8. 如何在圖片上添加標籤?
- 9. 在tableView中使用mapView註釋
- 10. 在highcharts標籤中添加圖片
- 11. 在選項標籤中添加圖片
- 12. 如何在mapview中顯示pin註釋?
- 13. 如何在Swift中使用GPS座標在地圖上添加多個註釋?
- 14. 如何在iphone中創建自定義註釋和標註
- 15. 在iPhone中的地圖中添加路線註釋
- 16. 快速使用AlertController在mapView上添加註釋
- 17. 如何在註釋中使用註釋?
- 18. 如何在地圖的註釋標註中添加自定義視圖
- 19. 如何在錨標籤的標題屬性中添加圖片標籤?
- 20. 如何在PHP Eclipse中添加註釋?
- 21. 如何在dygraph中添加註釋?
- 22. 在mapview註釋中添加了揭密按鈕
- 23. 如何在TVML的img標籤中添加佔位符圖片?
- 24. 如何在div中添加滾動圖片標籤
- 25. 如何在Reddit共享中添加圖片標籤?
- 26. 如何從標籤中爲屬性定義添加註釋?
- 27. 如何在iphone中使用mapview?
- 28. 想要使用VB.NET在PowerPoint幻燈片中添加註釋
- 29. 添加標題,註釋和圖像
- 30. 鈦 - Mapview和註釋
你好你有任何演示請發送給我..我在這麼麻煩.. – 2014
謝謝。我解決了我的問題很容易從您的代碼謝謝兄弟.. – 2014
什麼是存儲在alertInfoArray中的數據的格式和我們可以給標記註釋的功能 – Rinku