2011-02-15 16 views
35

ユーザーがマップビューiで移動するときに、いくつかのロジックを追加したいと思います。 e。彼はパンタッチを行います。しかし、ジェスチャ認識機能を追加してタッチを記録したいときは、何も起こりません。私は別のビューコントローラでそれを試して、認識プログラムをコントローラのビューに追加すると、それは正常に動作します。MKMapViewのUIPanGestureRecognizer?

はここに(私はそれが表示されていない場合でも、それをいくつかの他の事をする必要があるため、マップビューは、アプリケーションデリゲートのプロパティである)私のコードです:

- (void)viewDidLoad 
{ 
    ... 
    UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(showPan)]; 
    [appDelegate.mapView addGestureRecognizer:panGesture]; 
    [panGesture release]; 
} 

- (void)showPan 
{ 
    NSLog(@"pan!"); 
} 

私は、最新のiOS 4.2.1

を使用します

ありがとうございました。

答えて

128

誰も知りませんでしたので、アップルのテクニカルサポート担当者に相談してもらう必要がありました。 ; O)

MKMapViewは明らかにユーザと対話するための独自の認識機能を持っているので、あなたがUIGestureRecognizerDelegateプロトコルに準拠し、このような(BOOL)gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:を実装する必要があります。

- (void)viewDidLoad 
{ 
    ... 
    UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(showPan)]; 
    panGesture.delegate = self; 
    [appDelegate.mapView addGestureRecognizer:panGesture]; 
    [panGesture release]; 
} 

- (void)showPan 
{ 
    NSLog(@"pan!"); 
} 

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { 
    return YES; 
} 

をそれからそれは魔法のように動作します。

+1

これは私が探していたものです。ありがとうございます! – Zebs

+7

+1あなたは技術サポートを依頼するまで行ったので、 – Agos

+0

おはよう、ありがとう、それは私を理解するために私を取っただろう!これに答えるには – n13