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

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

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

【问题讨论】:

  • MKUserTrackingBarButtonItem 是您所需要的。尝试在谷歌上搜索

标签: ios iphone objective-c ipad mapkit


【解决方案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;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-09
        • 1970-01-01
        • 2015-01-11
        • 1970-01-01
        相关资源
        最近更新 更多