0

画面の大部分を占めるカスタム注釈ビューがあります。その中にはUITableViewといくつかのラベルがあります。

UITableViewは、セルの選択を正しく処理します。ただし、UITableViewまたはカスタム注釈ビューの任意の場所をダブルタップすると、マップがズームします。

まず、それがどのように起こっているのかを理解したいと思います。そして第二に、それが起こらないようにする方法。

4

1 に答える 1

0

私はこれを理解したと思います。何が起こっているのかというと、MKMapViewにはジェスチャレコグナイザーが接続されています。

MKMapViewをサブクラス化し、shouldReceiveTouchを実装することで、この問題の一部を修正しました。ダブルタップはまだ注釈ビューを通過していますが、それはそれほど問題ではありません。本当のユーザビリティの問題はシングルタップでした。

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
    UIView * v = touch.view;
    while( v ){
    if( [v isKindOfClass:[SPAnnotationView class]] ){
        SPAnnotationView * aV = (SPAnnotationView *)v;
        if( [aV isExtendedAnnotation]){
            return NO;
        }
    }
        v = v.superview;
    }

    return [super gestureRecognizer:gestureRecognizer shouldReceiveTouch:touch];

   }
于 2012-12-06T22:48:24.873 に答える