自定义用户位置图像不在引脚上居中

时间:2013-02-01 04:58:18

标签: ios mkmapview mapkit mkannotationview userlocation

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

- (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. 我为用户定位引脚设置的图像偏离中心,如下所示: user location picture

    enter image description here

  3. 我尝试过使用CGRect,CGPoint,设置框架,中心等(尽管我还没有尝试改变界限)并且没有任何改变。

    任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:3)

就偏离中心的形象而言,有两点想法:

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

  2. 如果最糟糕的情况发生,您可以使用centerOffset属性。如果您使用MKAnnotationView,我认为您不应该这样做。

  3. 关于你的影子:

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

    2. 话虽如此,我认为这不是问题所在。我对图像舍入算法持怀疑态度。你可以尝试暂时评论一下,看看你的影子是否出现了吗?但我在我的MKAnnotationView图像上使用阴影,它工作正常。你能与我们分享你的舍入算法吗?

    3. 如果不这样做,此图像是否与叠加层重合? (即图片背后的那个圈子是什么)。我再次尝试暂时删除它,看看是否会改变行为。当我使用MKCircleView时,它工作正常,但我们确保我们没有做任何好奇的事情(或任何其他绘图程序)。