Ich habe eine benutzerdefinierte MKOverlayView auf meiner Karte und ich möchte Berührungen erkennen. Allerdings kann ich nicht das Overlay erhalten, um zu antworten. Ich hatte gehofft, es würde etwas so dumm wie vergessen sein userInteractionEnabled auf YES zu setzen ... aber leider kein Glück dortMKOverlayView und berührt
.... zur Zeit, hier ist, wie ich es haben:
//map delegate overlay:
- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay
{
if (_radiusView !=nil) {
[_radiusView removeFromSuperview];
[_radiusView release];
_radiusView = nil;
}
_radiusView = [[CustomRadiusView alloc]initWithCircle:overlay];
_radiusView.userInteractionEnabled = YES;
_radiusView.strokeColor = [UIColor blueColor];
_radiusView.fillColor = [UIColor grayColor];
_radiusView.lineWidth = 1.0;
_radiusView.alpha = 0;
//fade in radius view
[UIView beginAnimations:@"fadeInRadius" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.6];
_radiusView.alpha = .3;
[UIView commitAnimations];
return _radiusView;
}
meine benutzerdefinierte Overlay-Klasse einfach implementiert touchesBegan und erstreckt sich MKCircleView
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"touch!");
}
danken Ihnen für eine solche klare Antwort, die perfekt gearbeitet –