iphone – 一旦地图加载,显示带标题(注释)的Pin
发布时间:2020-12-15 01:48:42 所属栏目:百科 来源:网络整理
导读:我正在开发我的第一个应用程序,并且在其中我只是尝试按下按钮单击显示带有引脚的地图(以及此引脚位置上的标题).我能够加载mapview并让它显示我想要的坐标.但是当我试图显示引脚和注释时,我遇到了问题.不知道在哪里编码以及如何使注释显示引脚.我搜索并看过很
我正在开发我的第一个应用程序,并且在其中我只是尝试按下按钮单击显示带有引脚的地图(以及此引脚位置上的标题).我能够加载mapview并让它显示我想要的坐标.但是当我试图显示引脚和注释时,我遇到了问题.不知道在哪里编码以及如何使注释显示引脚.我搜索并看过很多教程,但是大多数都显示了不同的mapview样式,并且在用户选择上显示引脚,我想在地图加载时显示引脚.
这是我必须显示正在工作的地图但没有引脚显示或注释的代码: FirstLocateViewController.m代码: #import "FirstLocateViewController.h" @implementation FirstLocateViewController @synthesize dismissViewButton; -(IBAction)dismissView:(id)sender { [self dismissModalViewControllerAnimated:YES]; } - (void)viewDidLoad { [super viewDidLoad]; CGRect frame = CGRectMake(0,320,420); mapView = [[MKMapView alloc] initWithFrame:frame]; mapView.mapType = MKMapTypeStandard; CLLocationCoordinate2D coord = {latitude: 12.3456,longitude: -7.890}; MKCoordinateSpan span = {latitudeDelta: 0.05,longitudeDelta: 0.05}; MKCoordinateRegion region = {coord,span}; [mapView setRegion:region]; [self.view addSubview:mapView]; } FirstLocateViewController.h代码: #import <UIKit/UIKit.h> #import <MapKit/MapKit.h> #import <MapKit/MKAnnotation.h> @interface FirstLocateViewController : UIViewController <MKMapViewDelegate> { UIButton *dismissViewButton; MKMapView *mapView; } @property (nonatomic,retain) IBOutlet UIButton *dismissViewButton; - (IBAction)dismissViewButton:(id)sender; @end 感谢您提前获得任何重要帮助. 解决方法
为此你需要创建一个注释,创建一个具有CLLocationCoordinate2D,title,subtitle的类
.h文件 #import <Foundation/Foundation.h> #import <MapKit/MKAnnotation.h> @interface DisplayMap : NSObject <MKAnnotation> { CLLocationCoordinate2D coordinate; NSString *title; NSString *subtitle; } @property (nonatomic,assign) CLLocationCoordinate2D coordinate; @property (nonatomic,copy) NSString *title; @property (nonatomic,copy) NSString *subtitle; @end 和.m文件 #import "DisplayMap.h" @implementation DisplayMap @synthesize coordinate,subtitle; -(void)dealloc{ [title release]; [super dealloc]; } @end 然后将以下代码添加到viewdidload DisplayMap *ann = [[DisplayMap alloc] init]; ann.title=@"put title here"; ann.coordinate = region.center; [mapView addAnnotation:ann]; 并实现以下方法 -(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation: (id <MKAnnotation>)annotation { MKPinAnnotationView *pinView = nil; if(annotation != mapView.userLocation) { static NSString *defaultPinID = @"com.invasivecode.pin"; pinView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:defaultPinID]; if ( pinView == nil ) pinView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:defaultPinID] autorelease]; pinView.pinColor = MKPinAnnotationColorPurple; pinView.canShowCallout = YES; pinView.animatesDrop = YES; } else { [mapView.userLocation setTitle:@"I am here"]; } return pinView; } 请按照此tutorial:给出解释代码: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |