我创建了一个自定义注释,右侧有一个按钮,左侧有一个标签。
它显示良好且标签文字正在完美变化,但出于某种原因,当我点击按钮时它没有反应。我已将IBAction连接到它,它应该工作。但它只是不叫我的IBAction。
有没有人知道为什么这个按钮忽略了我的触摸?
谢谢,
答案 0 :(得分:0)
(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];
}
我在我的项目中使用此代码,它对我来说很好,所以你可以试试这个。