【问题标题】:MapViewController displays view for current location alwaysMapViewController 始终显示当前位置的视图
【发布时间】:2026-01-04 16:35:01
【问题描述】:

我已经编写了以下代码,例如:

但我总是指向我当前的位置。我该如何解决这个问题?

 MapViewController *mvc = [[MapViewController alloc] initWithNibName:@"MapViewController" bundle:nil];

CLLocationCoordinate2D annotationCoord;

annotationCoord.latitude = 47.640071;
annotationCoord.longitude = -122.129598;

MKPointAnnotation *annotationPoint = [[MKPointAnnotation alloc] init];
annotationPoint.coordinate = annotationCoord;
annotationPoint.title = @"Microsoft";
annotationPoint.subtitle = @"Microsoft's headquarters";
[mvc.mapView addAnnotation:annotationPoint];

注意:

MapViewcontroller.h

@interface MapViewController : UIViewController <MKMapViewDelegate>
@property (weak, nonatomic) IBOutlet MKMapView *mapView;
@end

MapViewController.m

@implementation MapViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.

    self.mapView.delegate = self;
    self.mapView.mapType = MKMapTypeStandard;

    self.mapView.showsUserLocation = YES;


}

【问题讨论】:

    标签: ios objective-c ios7 ios5 ios6


    【解决方案1】:

    在你的代码下面试试这个

     MKCoordinateRegion adjustedRegion = [mapView regionThatFits:MKCoordinateRegionMakeWithDistance(annotationCoord, 200, 200)];
    [mapView setRegion:adjustedRegion animated:YES];
    

    可能会帮上忙……干杯……

    【讨论】:

    • Joge,不,它没有。同样的结果;(
    • MapViewController,这是 MKMapView 的子类吗?
    • joge,我已经编辑了问题并保留了 MapViewController 声明/定义。
    • 在 MapViewController 中可以看到,还写下 Userlocation 的代码。评论这一行“self.mapView.showsUserLocation = YES;”再试一次
    • 我已评论该行,但仍显示我的位置,但蓝色按钮现在不可见。我不明白“用户位置代码”。除了问题中提到的以外,我还没有编写任何代码?我错过了什么?。你的意思是delete方法?