MapView不显示注释

Posted

技术标签:

【中文标题】MapView不显示注释【英文标题】:MapView not Showing annotation 【发布时间】:2014-02-11 03:01:35 【问题描述】:

我的 MapView 不显示注释,以下是我的代码。我是objective-c的新手。有人可以弄清楚这段代码有什么问题。我想用蓝色圆圈显示用户位置,用红色图钉显示另一个位置。

#import <UIKit/UIKit.h>
#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
#import <CoreLocation/CoreLocation.h>


@interface MapViewController : UIViewController                   <UIApplicationDelegate,CLLocationManagerDelegate,MKMapViewDelegate,UITextFieldDelegate>

    CLLocationManager *locationManager;
    IBOutlet MKMapView *mapView;


@property (strong, nonatomic) UIWindow *window;
@property (nonatomic,retain) IBOutlet MKMapView *mapView;

@end

#import "MapViewController.h"

@implementation MapViewController
@synthesize mapView;

- (void)viewDidLoad

    [super viewDidLoad];
    self.mapView.delegate = self;
    locationManager = [[CLLocationManager alloc] init];
    [locationManager setDelegate:self];
    [locationManager setDistanceFilter:kCLDistanceFilterNone];
    [locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
    [self.mapView setShowsUserLocation:YES]
    [self.window makeKeyAndVisible];

    CLLocationCoordinate2D annotationCoord;
    annotationCoord.latitude = -37.5498;
    annotationCoord.longitude = -143.869;
    MKPointAnnotation *annotationPoint = [[MKPointAnnotation alloc] init];
    annotationPoint.coordinate = annotationCoord;
    annotationPoint.title = @"BlackHill PS";
    [mapView addAnnotation:annotationPoint];

@end

【问题讨论】:

蓝点出现了吗?缩小,看看整个世界。你在哪里期待注释?这些坐标位于南太平洋的中部。如果它应该在澳大利亚,经度应该是 +143。 是的,你是对的,经度应该是 +143。我已经更改了坐标,但在整个地图上仍然看不到任何蓝点。 好像地图视图IBOutlet没有连接。在 xib/storyboard 中,确保地图视图连接到视图控制器中的 mapView 出口。顺便说一句,你为什么在那个vc中有一个UIWindow?这应该只在应用程序委托中设置。 是的,我的 mapView IBOutlet 没有连接。谢谢 【参考方案1】:

您正在向地图添加注释,但您没有做任何事情来确保地图显示的区域是包含注释标记的地点的区域。这样做。

例子:

MKCoordinateRegion reg =
    MKCoordinateRegionMakeWithDistance(annotationPoint.coordinate, 600, 600);
mapView.region = reg;

顺便说一句,就您的代码而言,位置管理器的所有内容完全是浪费。如果地图被要求显示用户的位置,它会这样做。您的位置经理在故事中没有做任何事情(就您实际显示的代码而言)。它甚至没有运行(正在更新)。没意义。

【讨论】:

好吧,那么您正在做或忽略导致问题的其他事情。我的代码确实有效,您想做类似的事情。这是我的可下载示例,展示了如何添加具有不同程度自定义的注释:github.com/mattneub/Programming-ios-Book-Examples/blob/master/… 这是我展示用户位置的示例:github.com/mattneub/Programming-iOS-Book-Examples/blob/master/…

以上是关于MapView不显示注释的主要内容,如果未能解决你的问题,请参考以下文章

ios7 mapview注释按钮不显示

Mapview 不显示来自引脚注释的标题或副标题

显示选定半径的 MapView 注释

Iphone mapview 中未显示多个注释

无法快速显示注释的左侧附件视图

从 MySQL 数据库中提取 MapView 注释的坐标,但没有显示注释?