こんにちは.....これは重複した質問であることは知っていますが、まだ機能させることができず、単純なものが欠けていると確信しています。IB でデリゲートを設定し、RegionDidChange が呼び出されるので、mapView デリゲートが接続されていることがわかります。ただし、オーバーレイを表示したり、デリゲート メソッドを呼び出すことさえできません。コードは次のとおりです。
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
self.map.region = MKCoordinateRegionMakeWithDistance(
newLocation.coordinate,
milesToMeters(radius),
milesToMeters(radius)
);
self.map.centerCoordinate = newLocation.coordinate;
circle = [MKCircle circleWithCenterCoordinate:newLocation.coordinate radius:50.];
[self.map addOverlay:circle];
[locationManager stopUpdatingLocation];
}
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated {
NSLog(@"region did change");
}
- (MKOverlayView *)map:(MKMapView *)map viewForOverlay:(id <MKOverlay>)overlay {
NSLog(@"circling");
if ([overlay isKindOfClass:[MKCirlce class]])
{
MKCircleView *circleView = [[[MKCircleView alloc] initWithCircle:overlay] autorelease];
circleView.lineWidth = 1.0;
circleView.strokeColor = [UIColor redColor];
return circleView;
}
return nil;
}
どうもありがとう。ジュール