ios: mapkit how to enable curent location button on map?
我正在开发显示地图的应用程序。我在地图属性中启用了用户当前位置,并且现在显示蓝点表示用户的当前位置,但是现在我想在Pic(iPhone中的Maps应用程序快照)下方的左下角启用Button。
请告诉我如何在地图上获取此信息
在这里您可以找到此实现
iOS6MapsUserHeadingButton
以下是代码,您可以在上面给定的链接中找到图像
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | //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]; |
1 2 3 4 5 | MKUserTrackingBarButtonItem *trackButton = [[MKUserTrackingBarButtonItem alloc] initWithMapView:mapView]; [trackButton setTarget:self]; [trackButton setAction:@selector(track:)]; [toolbar setItems:[NSArray arrayWithObjects:trackButton, nil] animated:YES]; |
您需要创建MKUserTrackingBarButtonItem并将其传递给MKMapview,无论您在何处定义了地图视图。如下所示:
1 2 3 4 5 6 | - (void)viewDidLoad { [super viewDidLoad]; MKUserTrackingBarButtonItem *buttonItem = [[MKUserTrackingBarButtonItem alloc] initWithMapView:self.map]; self.navigationItem.rightBarButtonItem = buttonItem; } |