カスタム セルとして UITableView 内に MKMapView があります (質問しないでください ;) - 本当に重要かどうかはわかりません)。これには regionDidChangeAnimated デリゲート メソッドを登録します。このメソッドは、UITableView が読み込まれるときに 3 回呼び出されます。1 回は実際の領域で、次に 2 回は離れた領域で呼び出されます。シミュレーターでは、一貫して中心 (+37.43997405、-97.03125000) の領域を取得します。デバイスでは、マップ ビューを初期化するロケーション マネージャーによって報告されたロケーションに依存しているようです。
regionDidChangeAnimated 呼び出しが 3 回発生するのはなぜですか? そして、最後の 2 つの中心座標がずれているのはなぜですか?
これは、中心座標を取得するために使用するコードです。
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated {
CLLocation *l = [[CLLocation alloc] initWithLatitude:self.mapView.centerCoordinate.latitude longitude:self.mapView.centerCoordinate.longitude];
(....)