MKMapView showsUserLocation默认为灰色点,而不是蓝色点

时间:2014-07-17 10:01:57

标签: ios iphone objective-c

我向视图控制器添加了一个MKMapView,将showsUserLocation设置为YES:

MKMapView *mapView =[[MKMapView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT/2)];
mapView.delegate=self;
[mapView setZoomEnabled:YES];
[mapView setScrollEnabled:YES];
mapView.showsUserLocation = YES;
[self.view addSubview:mapView];

并实施了协议:

- (MKAnnotationView *)mapView:(MKMapView *)aMapView viewForAnnotation:(id <MKAnnotation>)annotation{
    MyAnnotation * myannotation=(MyAnnotation * )annotation;
    if(annotation != aMapView.userLocation)
    {
        // create a customized MKAnnotationView and return it. blabla
        return annView;
    }
    else
    {
        [aMapView.userLocation setTitle:NSLocalizedString(@"i_am_here",nil)];
    }
    return nil;
}

它在白色圆圈内显示灰色圆点。当用户位置更新时,灰色部分是动画。我期望的是一个蓝点,就像Apple的iOS Map应用程序中的那个,我不想为userLocation自定义视图(动画...)

是否有任何简单的设置可以将点颜色从灰色更改为蓝色?

我在iPhone 5c,7.1.1上进行测试; Xcode 5.1.1

在iOS 5和6之前,代码应该可以正常运行。

2 个答案:

答案 0 :(得分:8)

看看你的地图视图tintcolor。

例如,如果self.mapview.tintColor = [UIColor grayColor];点颜色为灰色,请将其设置为蓝色并返回蓝色。

答案 1 :(得分:0)

您可以使用:

mapView.tintColor = .red