自定义标记图标ios质量差

时间:2016-03-02 16:54:27

标签: ios maps marker

我正在尝试将图像添加到标记中, 如何实现最佳质量,因为你可以看到谷歌地图自己增加了两倍

http://i.imgur.com/5lJPUWv.png

1 个答案:

答案 0 :(得分:1)

您好,您是要为项目添加资产还是仅添加一个图像?

因此,您需要将图像资源(bigMarker.png,bigMarker @ 2x.png,bigMarker @ 3x.png)添加到项目资产中,例如屏幕截图。这在iOS 9上运行良好。

Assets.xcassets in project bigMarker asset

这是我在viewDidLoad中的代码示例

// Add custom position in Kansas
CustomAnnotation *annotation = [CustomAnnotation new];
annotation.title = @"Elevation Burger";
annotation.subtitle = @"The best buns...";
annotation.coordinate = CLLocationCoordinate2DMake(39.0119020f,-98.4842460f);
[self.myMap addAnnotation:annotation];

这是代表中的一个

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation {

    MKAnnotationView *annotationView = nil;
    if (annotation != mapView.userLocation) {
        annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation
                                                      reuseIdentifier:nil];
        annotationView.canShowCallout = YES;
        annotationView.image = [UIImage imageNamed:@"bigMarker"];
        annotationView.leftCalloutAccessoryView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"burgerBitmap"]];

        UIButton *accessoryButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
        UIImage *disclosureButtonImage = [[UIImage imageNamed:@"disclosure"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
        [accessoryButton setImage:disclosureButtonImage forState:UIControlStateNormal];
        annotationView.rightCalloutAccessoryView = accessoryButton;
    }
    return annotationView;
}