- (MAAnnotationView *)mapView:(MAMapView *)mapView viewForAnnotation:(id<MAAnnotation>)annotation
{
}
因为自定义的气泡是添加到大头针上的,而大头针的size只有下面很小一部分,所以calloutView是在大头针的外面的。
而 iOS 按钮超过父视图范围是无法响应事件的处理方法。所以就要重写hittest方法。
在CustomAnnotationView.m中重写hittest方法:
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
UIView *view = [super hitTest:point withEvent:event];
if (view == nil) {
CGPoint tempoint = [self.calloutView.navBtn convertPoint:point fromView:self];
if (CGRectContainsPoint(self.calloutView.navBtn.bounds, tempoint))
{
view = self.calloutView.navBtn;
}
}
return view;
}
这里的self.calloutView.navBtn 就是你需要点击的按钮
网友评论