サンプル コードの使用が機能しなかった理由についての私の推測: ビュー コントローラーをマップ ビューのデリゲートとして接続していません。これを行うための最初のステップは、コントローラーが次のように MKMapViewDelegate プロトコルを実装していることを確認することです (ヘッダー ファイル内)。
#import <MapKit/MapKit.h>
@interface MyViewController : UIViewController <MKMapViewDelegate>
XIB からビュー コントローラーをセットアップする場合は、Ctrl キーを押しながらマップ ビューからコントローラー インスタンスにドラッグし、マップ ビューのdelegate
アウトレットとして接続します。コードで設定する場合は、またはを呼び出しtheMapView.delegate = self;
ます。-loadView
-viewDidLoad
次に、ある時点(-viewDidLoad
たとえば、あなたの)で、
[theMapView addOverlay:[MKCircle circleWithCenterCoordinate:someCoordinate radius:someRadius]];
…結果として、デリゲートの-mapView:viewForOverlay:
メソッドを呼び出すマップ ビューが生成されます。これは、次のように実装できます。
-(MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay {
MKCircleView *circleView = [[MKCircleView alloc] initWithCircle:(MKCircle *)overlay];
circleView.fillColor = [UIColor blueColor];
return [circleView autorelease];
}