ios - 如何更改标记图标?

标签 ios objective-c mapkit

我想知道是否有办法改变那些用作标记的红色别针。如果有办法,该怎么做?

最佳答案

您可以在 mapView 中使用 3 种颜色图钉,如下所示。

  1. MKPinAnnotationColorGreen;
  2. MKPinAnnotationColorPurple
  3. MKPinAnnotationColorRed

如果您想添加自定义 View 或图像,则可以通过编程方式添加

你也可以在 MKMapView 的委托(delegate)方法中更改 pin,如下所示。

- (MKAnnotationView *)mapView:(MKMapView *)_mapView viewForAnnotation:(id <MKAnnotation>)annotation 
{
 MKPinAnnotationView *pinView  = (MKPinAnnotationView *)[_mapView dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
        pinView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:defaultPinID] autorelease];
        if (annotation == _mapView.userLocation) 
        {
//            pinView.pinColor = MKPinAnnotationColorRed;
//            return pinView;
            return nil;
        }
        pinView.pinColor = MKPinAnnotationColorGreen; // you can use MKPinAnnotationColorPurple, MKPinAnnotationColorRed;
        pinView.canShowCallout = YES;
        pinView.animatesDrop = NO;

        return pinView;
}

对于自定义图片或 pin,使用下面的代码..

- (MKAnnotationView *)mapView:(MKMapView *)_mapView viewForAnnotation:(id <MKAnnotation>)annotation 
{
    static NSString *AnnotationViewID = @"annotationViewID";

    MKAnnotationView *annotationView = (MKAnnotationView *)[_mapView dequeueReusableAnnotationViewWithIdentifier:AnnotationViewID];

    if (annotationView == nil)
    {
        annotationView = [[[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationViewID] autorelease];
    }

    annotationView.image = [UIImage imageNamed:@"yourImageName"];//add any image which you want to show on map instead of red pins
    annotationView.annotation = annotation;

    return annotationView;
}

关于ios - 如何更改标记图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13761864/

相关文章:

ios - 如何检测Facebook喜欢的按钮被点击?

ios - MKMapView 不呈现(仅当来自背景时)

ios - 为什么我不能为我的 App Store Connect 添加新的银行账户?

ios - 不要在 UITextField 返回时关闭键盘

objective-c - 从应用程序包启动应用程序

ios - 将 UITableViewCell 的图像设置为特定颜色的圆圈

当同一位置有多个项目时,iOS 更改标注

iphone - 为 MapKit 注释将 HTML 转换为纯文本

ios - UITableView/UICollectionView 上的 UIRefreshControl 大小错误

c# - 单点触控 : CIContext in FinishedLaunching seems to crash app?