У меня есть пользовательский UIView
, который отображается в качестве выноски, когда пользователь нажимает на пользовательскую аннотацию на MKMapView
.Пользовательская выноска MKMapView не отвечает на события касания
Для этого я подклассифицировал MKAnnotationView
и перегрузил метод -setSelected:selected animated:
, как предлагается в this answer. В основном, я добавляю свой пользовательский просмотр в качестве подзаголовка моего подкласса MKAnnotationView
.
Проблема в том, что я не могу взаимодействовать с выноском, содержащим кнопку и прокручиваемый веб-просмотр. Более того, если выноска скрывает аннотацию, и я нажимаю выносок в приблизительном месте этой скрытой аннотации, выноска будет уволена, и будет показан новый.
// TPMapAnnotationView.m
@implementation TPMapAnnotationView
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
[super setSelected:selected animated:animated];
if(selected)
{
TPMapAnnotation* anno = ((TPMapAnnotation*)self.annotation);
QuickInfoView* qi = [[QuickTabView alloc] initWithFrame:CGRectMake(0, 0, 440, 300)];
[qi displayDataForAnnotation:anno];
[self addSubview:qi];
// some animiation code that doesn't change things either way
}
else
{
[[self.subviews objectAtIndex:0] removeFromSuperview];
}
}
Код ниже создает TPMapAnnotationView
.
// this is in the view controller that contains the MKMapView
- (MKAnnotationView *) mapView:(MKMapView *) mapView viewForAnnotation:(id) annotation
{
if ([annotation isKindOfClass:[TPMapAnnotation class]])
{
TPMapAnnotationView *customAnnotationView = (TPMapAnnotationView *)[myMap dequeueReusableAnnotationViewWithIdentifier:@"TPAnn"];
if (customAnnotationView == nil)
{
customAnnotationView = [[TPMapAnnotationView alloc] initWithAnnotation:annotation
reuseIdentifier:@"TPAnn"];
}
[customAnnotationView setImage:annotationImage];
return customAnnotationView;
}
return nil; // blue radar circle for MKUserLocation class.
}
ли 'userInteractionEnabled' свойство вашего' MKAnnotationView' установлено в 'YES'? – mattjgalloway
Да, это значение 'YES'. – dandan78
Есть ли шанс, что вы можете опубликовать код для создания вашего подкласса «MKAnnotationView»? – mattjgalloway