2

所以我真的很困惑。我用了:

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

    static NSString* AnnotationIdentifier = @"Annotation";
    MKPinAnnotationView *pinView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:AnnotationIdentifier];
    if (!pinView) {
        MKPinAnnotationView *customPinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationIdentifier];
        if (annotation == mapView.userLocation){
            customPinView.image = [UIImage imageNamed:@"303761_4417778996801_94858213_n.jpg"];
            [customPinView.layer setMasksToBounds:NO];
            [self setRoundedView:customPinView toDiameter:kPictureDiameter];
            [customPinView.layer setBorderColor:[UIColor whiteColor].CGColor];
            [customPinView.layer setBorderWidth:5.0f];
            [customPinView.layer setShadowColor:[UIColor blackColor].CGColor];
            [customPinView.layer setShadowOpacity:1.0f];
            [customPinView.layer setShadowRadius:20.0f];
            [customPinView.layer setShadowOffset:CGSizeMake(0, 0)];
            [customPinView setBackgroundColor:[UIColor whiteColor]];
        }
        return customPinView;
    } else {
        pinView.annotation = annotation;
    }

    return pinView;
}

将我自己的图像添加到用户位置图钉。那行得通。不过有两个问题:

  1. 阴影不起作用。

  2. 我为用户位置图钉设置的图像偏离中心,如下所示: 用户位置图片

    在此处输入图像描述

我试过玩弄 CGRect、CGPoint、设置框架、中心等(虽然我还没有尝试改变边界)但没有任何改变。

任何帮助将不胜感激。

4

1 回答 1

3

就图像偏离中心而言,有两个想法:

  1. 我通常MKAnnotationView在使用自己的图像进行注释时使用,而不是MKPinAnnotationView. 当我尝试使用MKPinAnnotationView时,我的图像不再居中。

  2. 如果最坏的情况发生,您可以使用该centerOffset物业。我认为如果您使用MKAnnotationView.

关于你的影子:

  1. 20 的阴影半径是如此之大,以至于它是如此分散以至于你几乎看不到它。当我使用 20 时,我几乎无法辨认。它在 10 时开始变得更加明显,在 5 时更明显。我认为这不是这里真正的问题,但是当你开始尝试时,使用一个数字这里足够低,所以你可以清楚地看到阴影。

  2. 话虽如此,我认为这不是问题所在。我怀疑图像舍入算法。您可以尝试暂时将其注释掉并查看您的影子是否出现吗?但我在MKAnnotationView图像上使用阴影,效果很好。你能和我们分享你的舍入算法吗?

  3. 如果不这样做,该图像是否与叠加层重合?(即图片后面的圆圈是什么)。我会再次尝试暂时删除它,看看是否会改变行为。当我使用 aMKCircleView时,它工作得很好,但让我们确保我们没有在那里做任何奇怪的事情(或任何其他绘图例程)。

于 2013-02-01T07:32:38.163 回答