在我的应用程序中,我实现了 map View 并添加了注释。
但是现在,我想在弹出窗口中单击注释时显示详细 View 。到目前为止,我是在单击 calloutAccessoryControl 时执行此操作的。
但是弹出窗口必须从注释旁边开始 我不想显示 calloutAccessoryControl 或任何黑色默认标签。
我的代码是:
- (MKAnnotationView *)mapView:(MKMapView *)myMap viewForAnnotation:(id <MKAnnotation>)annotation
{
AnnotationImageView *myLocationImage = (AnnotationImageView *)[map dequeueReusableAnnotationViewWithIdentifier:defaultID];
if (myLocationImage == nil )
{
myLocationImage = [[[AnnotationImageView alloc] initWithAnnotation:annotation reuseIdentifier:defaultID] autorelease];
myLocationImage.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
}
myLocationImage.locationID = [currentAnnotation locationID];
myLocation = myLocationImage;
[myLocation setEnabled:YES];
[myLocation setCanShowCallout:YES];
return myLocation;
}
- (void)mapView:(MKMapView *)myMap annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
detailsView *popUp=[[detailsView alloc] initWithNibName:@"detailsView_ipad" bundle:nil];
popView = [[UIPopoverController alloc]initWithContentViewController:popUp];
popView.delegate =self;
[popView setPopoverContentSize:CGSizeMake(600, 500)];
AnnotationImageView *myLocationImage = (AnnotationImageView *)view;
popUp.locationID = myLocationImage.locationID;
[popView presentPopoverFromRect:control.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
}
点击注释时是否有方法调用?
我该怎么做?
**我想这样显示**
最佳答案
在实现MKMapViewDelegate
的类中,您可以实现mapView:didSelectAnnotationView:
方法:
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)aView {
//do something...like push a new UIViewController
if (UIUserInterfaceIdiomPhone == UI_USER_INTERFACE_IDIOM()) {
//only do something when the app is running on the iPhone
}
}
关于iphone - Iphone SDK 中 map 的详细 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14479644/