右側にボタンがあり、左側にラベルがあるカスタム注釈を作成しました。
それはうまく表示され、ラベルのテキストは完全に変更されていますが、何らかの理由でボタンをクリックしても反応しません。IBAction を接続しましたが、動作するはずです。しかし、それは私の IBAction を呼び出しません。
このボタンが私のタッチを無視している理由を知っている人はいますか?
ありがとう、
(MKAnnotationView *)mapView:(MKMapView *)aMapView
viewForAnnotation:(id)ann
{
NSString *identifier = @”myPin”;
MKPinAnnotationView *pin = (MKPinAnnotationView *)
[aMapView dequeueReusableAnnotationViewWithIdentifier:identifier];
if (pin == nil) {
pin = [[[MKPinAnnotationView alloc] initWithAnnotation:ann
reuseIdentifier:identifier]
autorelease];
} else {
pin.annotation = ann;
}
//---display a disclosure button on the right---
UIButton *myDetailButton =
[UIButton buttonWithType:UIButtonTypeDetailDisclosure];
myDetailButton.frame = CGRectMake(0, 0, 23, 23);
myDetailButton.contentVerticalAlignment =
UIControlContentVerticalAlignmentCenter;
myDetailButton.contentHorizontalAlignment =
UIControlContentHorizontalAlignmentCenter;
[myDetailButton addTarget:self
action:@selector (checkButtonTapped:)
forControlEvents:UIControlEventTouchUpInside];
pin.rightCalloutAccessoryView = myDetailButton;
pin.enabled = YES;
pin.animatesDrop=TRUE;
pin.canShowCallout=YES;
return pin;
}
-(void) checkButtonTapped:(id) sender
{
//---know which button was clicked;
// useful for multiple pins on the map---
// UIControl *btnClicked = sender;
UIAlertView *alert =
[[UIAlertView alloc] initWithTitle:@”Your Current Location”
message :location
delegate:self
cancelButtonTitle:@”OK”
otherButtonTitles:nil];
[alert show];
[alert release];
}
私は自分のプロジェクトでこのコードを使用していますが、うまく機能するので、これを試すことができます。