Пользовательский MKAnnotation выноска пузырь с кнопкой

Я разрабатываю приложение, где пользователь локализуется с помощью gps, а затем его спрашивают, находится ли он в определенном месте. Чтобы подтвердить это, ему сразу же предоставляется пузырь выноски с вопросом, находится ли он в определенном месте.

Поскольку есть много подобных вопросов, я смог сделать собственный пузырь выноски:

Моя проблема: кнопки нетинтерактивный» Мое предположение: поскольку этот пользовательский выносок выше, чем стандартный пузырь выноски, мне пришлось поместить его в отрицательныйРамка", поэтому кнопка не может быть нажата. Вот мойdidSelectAnnotationView метод

- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view {
    if(![view.annotation isKindOfClass:[MKUserLocation class]]) {
        CalloutView *calloutView = (CalloutView *)[[[NSBundle mainBundle] loadNibNamed:@"callOutView" owner:self options:nil] objectAtIndex:0];
        CGRect calloutViewFrame = calloutView.frame;
        calloutViewFrame.origin = CGPointMake(-calloutViewFrame.size.width/2 + 15, -calloutViewFrame.size.height);
        calloutView.frame = calloutViewFrame;
        [calloutView.calloutLabel setText:[(MyLocation*)[view annotation] title]];
        [calloutView.btnYes addTarget:self
                               action:@selector(checkin)
                     forControlEvents:UIControlEventTouchUpInside];
        calloutView.userInteractionEnabled = YES;
        view.userInteractionEnabled = YES;
        [view addSubview:calloutView];
    }

}

CalloutView - это простой класс с 2 свойствами (метка, которая показывает название места и кнопки) и с xib.

Я делал этот пузырь с выносками в течение нескольких дней. Я пытался с помощью "асинхронные решения » решение но я не смог добавить любую другую кнопку, кроме кнопки раскрытия.

Моя следующая попытка состояла в том, чтобы найти что-то, что было проще, чем асинхронные решения, и изменить его для моего использования. Вот как я нашелТочи»Пользовательские выноски.

Основываясь на его работе, я смог настроить его пузырь и изменить информационную кнопку для своей пользовательской кнопки. Однако моя проблема осталась прежней. Чтобы поместить мой пользовательский вид выноски поверх булавки, я должен был придать ей отрицательный кадр, поэтому моя кнопка была "интерактивный» только в нижних 5 пикселях. Кажется, что мне, возможно, нужно глубже покопаться в пузыре выноски по умолчанию ios, создать его подкласс и изменить структуру выноски. Но я'Я действительно безнадежен сейчас.

Если бы вы, ребята, могли показать мне правильный путь или дать мне совет, я быбуду рад.

Ответы на вопрос(3)

Ваш ответ на вопрос