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;
}

自分の画像をユーザーの場所のピンに追加します。そして、それは機能します。ただし、次の 2 つの問題があります。

  1. 影が機能していません。

  2. ユーザーの場所のピンに設定した画像は中心からずれており、次のようになります。

    ここに画像の説明を入力

私はCGRect、CGPointをいじって、フレームを設定し、ectを中心にしようとしましたが(まだ境界を変更しようとはしていませんが)、何も変わりません。

どんな助けでも大歓迎です。

4

1 に答える 1

3

画像が中心から外れているという点で、2つの考えがあります。

  1. 私は通常MKAnnotationView、注釈に自分の画像を使用するときに使用しますが、ではありませんMKPinAnnotationView。を使ってみたところMKPinAnnotationView、画像が中央に配置されなくなりました。

  2. 最悪の事態が発生した場合は、centerOffsetプロパティで遊ぶことができます。を使用する場合は必要ないと思いますMKAnnotationView

あなたの影について:

  1. 影の半径20は非常に大きいため、ほとんど見えないほど拡散しています。20を使用したときはほとんどわかりませんでした。10でさらに目立つようになり、5でさらに目立つようになりました。これはここでの本当の問題ではないと思いますが、実験を開始するときに、数値を使用してください。ここでは十分に低いので、影がはっきりと見えます。

  2. そうは言っても、それは問題ではないと思います。画像の丸めアルゴリズムに疑いがあります。一時的にコメントアウトして、影が表示されるかどうかを確認してみてください。しかし、私は自分の画像に影を使用してMKAnnotationViewおり、それはうまく機能します。丸めアルゴリズムを私たちと共有できますか?

  3. それでもうまくいかない場合、この画像はオーバーレイと一致していますか?(つまり、写真の後ろにあるその円​​は何ですか)。もう一度、一時的に削除して、動作が変わるかどうかを確認します。を使用するMKCircleViewと正常に機能しますが、そこで(または他の描画ルーチンで)不思議なことをしていないことを確認しましょう。

于 2013-02-01T07:32:38.163 に答える