2012-11-21 5 views
8

正規注釈ピンの原点は、底辺の中央にあります。 したがって、ピンは常に同じ場所を指します。イメージのマップ注釈ビューの原点を変更しますか?

私のカスタム画像を追加すると、その原点が画像の中心になるので、ズームインまたはズームアウトするたびに、画像の下端が別の場所を指します。ここで

enter image description here

は私のピンは、パリの中心しかし

enter image description here

が、私は、ズームインするとき、私のピンの底が中央を指していないを指すようになっていますパリ。

私はCGRect.originで試していますが、役に立たないものはありません。ここで

は私のコードです:

customPinView.centerOffset = CGPointMake(xOffset,yOffset); 


無関係していますが、initWithAnnotationの代わりを使用する必要があります。

- (MKAnnotationView *)mapView:(MKMapView *)theMapView viewForAnnotation:(id <MKAnnotation>)annotation 
{ 
    MKAnnotationView * customPinView = [[MKAnnotationView alloc] init]; 
    UIImage * img = [UIImage imageNamed:@"waterPin.png"] ; 
    CGRect resizeRect; 
    resizeRect.size.height = 40; 
    resizeRect.size.width = 40; 
    resizeRect.origin = (CGPoint){0.0f, 0.0f}; 
    UIGraphicsBeginImageContext(resizeRect.size); 
    [img drawInRect:resizeRect]; 
    UIImage *resizedImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    customPinView.image = resizedImage; 
    return customPinView; 
} 
+0

もしあなたがいくつかのコードを投稿することができますか? –

+0

ちょうど投稿、申し訳ありません – AMTourky

+1

注釈は正確にどのような座標(緯度/経度)ですか? 'customPinView.centerOffset'を設定してイメージのオフセットを調整してみてください(座標を最初に確認します)。また、MKAnnotationViewのinitだけでなく、initWithAnnotationを使用する必要があります。 – Anna

答えて

13

MKAnnotationViewあなたがオフセット画像を調整するために設定してみることcenterOffset性質を持っていますMKAnnotationViewを作成するためのちょうどinit
dequeueReusableAnnotationViewWithIdentifierを使用してアノテーションビューの再利用を実装してパフォーマンスを向上させることも害はありません。

また、デリゲートメソッドでイメージのサイズをプログラムで変更せず、代わりにサイズ変更済みイメージを使用して開始することをお勧めします。次に、毎回アノテーションイメージのランタイムリサイズに費やすことなく、customPinView.image = [UIImage imageNamed:@"resizedWaterPin.png"];を実行できます。

+0

ドラッグについてはどうですか? 私はそれをdraggable = YESに設定しましたが、すべてのビューではなく、ドラッグするためにいくつかの場所をクリックする必要があります。 – AMTourky

+1

アノテーションクラスがsetCoordinateを実装していることを確認してください。そうでない場合、ドラッグ可能でも、ドラッグ可能であってもドラッグできません。 http://stackoverflow.com/questions/11927692/ios-mkmapview-draggable-annotationsおよび[ドキュメント](http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/LocationAwarenessPG/AnnotatingMaps)を参照してください。 /AnnotatingMaps.html#//apple_ref/doc/uid/TP40009497-CH6-SW22)。 – Anna

+0

それはドラッグしている、はい私​​は必要な方法を実装しましたが、ピン自体は、特定の場所からそれらに触れる必要がありますピンのどこでもないです – AMTourky