ios:mapkit如何在地图上启用当前位置按钮?

Posted

技术标签:

【中文标题】ios:mapkit如何在地图上启用当前位置按钮?【英文标题】:ios: mapkit how to enable curent location button on map? 【发布时间】:2014-02-10 13:43:28 【问题描述】:

我正在开发显示地图的应用程序。我在地图属性中启用了用户当前位置,它现在显示 蓝色 点表示用户的当前位置,但现在我想启用图片下方左下角的按钮(iPhone 中地图应用程序的快照)。

请告诉我如何在地图上得到这个

【问题讨论】:

MKUserTrackingBarButtonItem 是您所需要的。尝试在谷歌上搜索 【参考方案1】:
MKUserTrackingBarButtonItem *trackButton = [[MKUserTrackingBarButtonItem alloc] initWithMapView:mapView];   
[trackButton setTarget:self];
[trackButton setAction:@selector(track:)];

[toolbar setItems:[NSArray arrayWithObjects:trackButton, nil] animated:YES];

【讨论】:

【参考方案2】:

在这里你可以找到这个的实现

ios6MapsUserHeadingButton

以下是代码,您可以在上述链接中找到图片

//User Heading Button states images
UIImage *buttonImage = [UIImage imageNamed:@"greyButtonHighlight.png"];
UIImage *buttonImageHighlight = [UIImage imageNamed:@"greyButton.png"];
UIImage *buttonArrow = [UIImage imageNamed:@"LocationGrey.png"];

//Configure the button
userHeadingBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[userHeadingBtn addTarget:self action:@selector(startShowingUserHeading:) forControlEvents:UIControlEventTouchUpInside];
//Add state images
[userHeadingBtn setBackgroundImage:buttonImage forState:UIControlStateNormal];
[userHeadingBtn setBackgroundImage:buttonImage forState:UIControlStateNormal];
[userHeadingBtn setBackgroundImage:buttonImageHighlight forState:UIControlStateHighlighted];
[userHeadingBtn setImage:buttonArrow forState:UIControlStateNormal];

//Button shadow
userHeadingBtn.frame = CGRectMake(5,425,39,30);
userHeadingBtn.layer.cornerRadius = 8.0f;
userHeadingBtn.layer.masksToBounds = NO;
userHeadingBtn.layer.shadowColor = [UIColor blackColor].CGColor;
userHeadingBtn.layer.shadowOpacity = 0.8;
userHeadingBtn.layer.shadowRadius = 1;
userHeadingBtn.layer.shadowOffset = CGSizeMake(0, 1.0f);

[self.mapView addSubview:userHeadingBtn];

【讨论】:

【参考方案3】:

您需要创建 MKUserTrackingBarButtonItem 并将其传递给您定义地图视图的 MKMapview。如下所示:

  - (void)viewDidLoad

    [super viewDidLoad];    
    MKUserTrackingBarButtonItem *buttonItem = [[MKUserTrackingBarButtonItem alloc] initWithMapView:self.map];
    self.navigationItem.rightBarButtonItem = buttonItem;

【讨论】:

以上是关于ios:mapkit如何在地图上启用当前位置按钮?的主要内容,如果未能解决你的问题,请参考以下文章

didSelect 上的 MapKit/MKMapViewDelegate:如果启用了用户位置,则底部工作表不会打开

使用 MapKit 在 IOS 地图上放置图钉? [关闭]

如何在 Ti.map 上的苹果地图上添加“当前位置按钮”(导航标记)

Yandex MapKit 3.0。获取屏幕和缩放的中心,在地图上获取位置

MapKit 缩放到用户当前位置

Swift mapkit未指向位置