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