Пользовательский 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, создать его подкласс и изменить структуру выноски. Но я'Я действительно безнадежен сейчас.
Если бы вы, ребята, могли показать мне правильный путь или дать мне совет, я быбуду рад.