3

MKMapView にいくつかの注釈を追加しました。ユーザーが注釈の 1 つをクリックすると、マップに UIView を追加する右のアクセサリ ボタンを備えた UICalloutView が表示され、その特定の場所に関する情報が表示されます。この UIView はマップのスーパービューの中央に配置されています。そのビューの情報が注釈に関連していることを示すために、表示されているマップの四角形を下 (y 軸上) にシフトし、中央に配置したいと考えています。注釈がビューの真下になるように x 軸を調整します。

注釈を中央に配置するために次のことを行っていますが、注釈を y 軸に沿って下に移動して、追加された UIView の下に配置する方法がわかりません。どうすればそうできるか教えてください。

[self.mapView setCenterCoordinate:[annotation coordinate] animated:YES];
4

2 に答える 2

7

マップを下に移動して特定の を中心にしたいが、coordinate上に何かを配置するスペースを確保するために 40% のように下に移動したい場合は、次のようにすることができます。

CLLocationCoordinate2D center = coordinate;
center.latitude -= self.mapView.region.span.latitudeDelta * 0.40;
[self.mapView setCenterCoordinate:center animated:YES];
于 2013-07-21T19:33:12.637 に答える
2

情報ビューのサイズを取得すると、(マップのサイズとマップ ビューのサイズの差に基づいて) マップをどの程度使用するかがわかります。これでオフセットがわかったので、注釈を下に移動するために中心に移動する必要があるポイント (ビュー座標系で) を計算できます)。次にconvertPoint:toCoordinateFromView:、 で使用するポイントの座標を見つけるために を使用できますsetCenterCoordinate:animated:

于 2013-07-21T18:44:23.877 に答える