Ios 在我的地图上添加一个标记

Ios 在我的地图上添加一个标记,ios,map,mapkit,marker,Ios,Map,Mapkit,Marker,我是iOS新手,它与Android逻辑如此不同,以至于我找不到如何在地图上添加标记:-| 我已将MKMapView添加到我的xib 我已将此代码添加到我的.m(已修剪) #导入“AppDelegate.h” #进口 @接口鸽() @属性(弱、非原子)IBMMapView*mappa; @结束 #定义每英里的米数1609.344 @执行鸽 -(iAction)vaiHome:(id)发件人{ Index*second=[[Index alloc]initWithNibName:@“Index”bu

我是iOS新手,它与Android逻辑如此不同,以至于我找不到如何在地图上添加标记:-|

我已将
MKMapView
添加到我的
xib

我已将此代码添加到我的.m(已修剪)

#导入“AppDelegate.h”
#进口
@接口鸽()
@属性(弱、非原子)IBMMapView*mappa;
@结束
#定义每英里的米数1609.344
@执行鸽
-(iAction)vaiHome:(id)发件人{
Index*second=[[Index alloc]initWithNibName:@“Index”bundle:nil];
[自我呈现视图控制器:第二个动画:是完成:无];
}
-(无效)viewDidLoad
{
[超级视图下载];
C定位协调2 D动物定位;
zoomLocation.latitude=45.40170;
zoomLocation.经度=8.91552;
MKCoordinateRegion viewRegion=MKCoordinateRegionMakeWithDistance(缩放位置、米/英里、米/英里);
[_MappaSetRegion:viewRegion动画:是];
[_MappaRegionAtfits:viewRegion];
}
现在,如何在该位置显示pin?这应该很简单,但我找不到解决方案:-| 此外,地图仍在美国,但大部分都在标记处


非常感谢。

首先,您必须设置注释标记(在viewdidload中调用此标记):

然后,必须设置MKMapViewDelegate方法:

- (void)mapView:(MKMapView *)mv didAddAnnotationViews:(NSArray *)views
{
    MKAnnotationView* annotView = [views objectAtIndex:0];
    id<MKAnnotation> mp = [annotView annotation];
    MKCoordinateRegion region = [mv regionThatFits:MKCoordinateRegionMakeWithDistance([mp coordinate], REGION_WINDOW, REGION_WINDOW)];
    [mv setRegion:region animated:YES];
}
-(void)地图视图:(MKMapView*)mv didaddannotationview:(NSArray*)视图
{
MKAnnotationView*annotView=[views objectAtIndex:0];
id mp=[annotView注释];
MKCoordinateRegion region=[mv RegionAtfits:MKCoordinateRegionMakeWithDistance([mp坐标],region_窗口,region_窗口)];
[mv setRegion:区域动画:是];
}
NARMAPVIEW注释:

#import <Foundation/Foundation.h>
#import <MapKit/MapKit.h>

@interface NARMapViewAnnotation : NSObject <MKAnnotation>

@property (nonatomic, assign) CLLocationCoordinate2D coordinate;

- (id)initWithCoord:(CLLocationCoordinate2D)coord;

@end

#import "NARMapViewAnnotation.h"

@implementation NARMapViewAnnotation

- (id)initWithCoord:(CLLocationCoordinate2D)coord
{
    if (self = [super init])
    {
        _coordinate = coord;
    }

    return self;
}
@end
#导入
#进口
@接口NARMapViewAnnotation:NSObject
@属性(非原子,赋值)CLLocationCoordinate2D坐标;
-(id)initWithCoord:(CLLocationCoordinate2D)coord;
@结束
#导入“NARMapViewAnnotation.h”
@MapViewAnnotation的实现
-(id)initWithCoords:(CLLocationCoordinate2D)Coords
{
if(self=[super init])
{
_坐标=坐标;
}
回归自我;
}
@结束

抱歉,我不明白,因为我收到了一个未声明标识符NARMapViewAnnotation和annotah抱歉的错误。这是您创建的自定义注释标记。我会为它添加代码。它告诉我NarmapViewAnnotation中没有可见的@interface initWithCoord。请确保拼写正确?它就在NARMapViewAnnotation类中。请阅读《苹果位置和地图编程指南》的一节(建议阅读该指南的其余部分)。简单的答案是:创建一个MKPointAnnotation对象,设置其属性,然后调用addAnnotation。这肯定有数百个答案,仅此而已。
- (void)mapView:(MKMapView *)mv didAddAnnotationViews:(NSArray *)views
{
    MKAnnotationView* annotView = [views objectAtIndex:0];
    id<MKAnnotation> mp = [annotView annotation];
    MKCoordinateRegion region = [mv regionThatFits:MKCoordinateRegionMakeWithDistance([mp coordinate], REGION_WINDOW, REGION_WINDOW)];
    [mv setRegion:region animated:YES];
}
#import <Foundation/Foundation.h>
#import <MapKit/MapKit.h>

@interface NARMapViewAnnotation : NSObject <MKAnnotation>

@property (nonatomic, assign) CLLocationCoordinate2D coordinate;

- (id)initWithCoord:(CLLocationCoordinate2D)coord;

@end

#import "NARMapViewAnnotation.h"

@implementation NARMapViewAnnotation

- (id)initWithCoord:(CLLocationCoordinate2D)coord
{
    if (self = [super init])
    {
        _coordinate = coord;
    }

    return self;
}
@end