2

マップ用のカスタム コールアウト ビューがあります。中にテーブルビューがあります。IOS 6 まではすべて正常に動作し、行を選択するとコールアウト内に新しいビューが表示されましたが、IOS 6 では動作しなくなりました。テーブルビューが表示されますが、テーブルをスクロールするだけで行を選択できません。この問題を解決する方法はありますか?

thx 4 ヘルプ!

4

1 に答える 1

0

この問題を解決しました。CalloutView で何かをクリックしても、マップに触れません。

1 - ファイル MapviewController.h にデリゲートを追加します: UIGestureRecognizerDelegate

2 - ファイル MapViewController.m でメソッドを実装 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch

-私の mapView では、マップを 1 回クリックすると、このメソッドに 3 回入ります。だから私はタッチ意志アクションを制限します.最初のタッチ意志アクション. - myCalloutView には tabbleView があり、tabbleView がタッチを受け取ると、マップに対して false のタッチが返され、タブブルビューがタッチできるようになります。ボタンについても同じです。

注:NSlogヒットテストでは、ビュー:タッチしたいビューアイテムの名前があります。私のビューの例: isEqualToString:@"UITableViewCellContentView"]

static int count=0;
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
        NSLog(@"hit test view %@",[touch view]);    
        if(count >0 && count<=2)
        {
            count++;
            count=count%2;
            return FALSE;
        }
        count++;      
        if ([[[[touch view] class] description] isEqualToString:@"UITableViewCellContentView"]) {
            return FALSE;
        }
        return TRUE;
    }
于 2012-11-02T10:17:21.097 に答える