0


iOSアプリケーションにmapViewを含む単一のビューがあります。タップまたは長押し認識機能を追加すると、イベントが適切に呼び出されます。しかし、ピンチイベントではありません...

    UIPinchGestureRecognizer *handlePinchGesture=[[UIPinchGestureRecognizer alloc]initWithTarget:mapView action:@selector(handleGesture:)];
    [mapView addGestureRecognizer:handlePinchGesture];

私が何を追加すべきか考えていますか?ありがとう。

4

2 に答える 2

3

mapViewあなたがであると仮定するとMKMapView、それは地図をズームするための独自のピンチジェスチャレコグナイザーを持っています。

独自のレコグナイザーを追加する場合は、他の(マップビューで制御される)レコグナイザーと同時に認識できるようにする必要があります。ジェスチャレコグナイザーを設定してdelegate実装しますgestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:(いつでも戻ることができますYES)。

また、おそらく、ではなくジェスチャ認識機能として設定する必要がありselfます。targetmapView

于 2012-05-06T14:28:43.853 に答える
1

handleGestureメソッドで、次のようなことをしましたか?

CGFloat beginPinch;  //declare this as your ivars

-(void)handleGesture:(UIPinchGestureRecognizer *)pinchRecognizer
{
    if (pinchRecognizer.state == UIGestureRecognizerStateBegan)
    {
        beginPinch = pinchRecognizer.scale;    
    } 
    else if (pinchRecognizer.state == UIGestureRecognizerStateEnded)
    {
        if (pinchRecognizer.scale < beginPinch)
        {
              //do your stuff
        }
    }
}
于 2012-05-06T14:22:10.120 に答える