IOS 6 CalloutView с TableView больше не работает
У меня есть собственный вид вызова для моей карты. Внутри есть стол. До IOS 6 все работало нормально, и если я выбрал строку, внутри выноски отображался новый вид, но теперь с IOS 6 он больше не работает. Вид таблицы отображается, но я не могу выбрать строку, просто прокрутите таблицу. Есть идеи, как решить эту проблему?
спасибо 4 помогите!
1 ответ
Я решил эту проблему. Нажмите что-нибудь в CalloutView, карта не будет касаться.
1 - В файле MapviewController.h вы добавите делегат: UIGestureRecognizerDelegate
2 - и в файле MapViewController.m реализует метод - (BOOL)gestRecognizer:(UIGestureRecognizer *)gestRecognizer следует ReceiveTouch:(UITouch *) сенсорный
-В моем mapView, когда вы нажимаете 1 раз на карте, он будет идти в этом методе 3 раза. Поэтому я ограничу действие касания волей. Первое касание будет действием. - В myCalloutView есть tabbleView, если tabbleView получает прикосновение. Это вернет ложное прикосновение для карты, это сделает ваш tabbleview может получить прикосновение. То же самое для вашей кнопки
Примечание: в NSlog Hit Test View: будет иметь название элемента просмотра, к которому вы хотите прикоснуться. пример моего представления: isEqualToString:@"UITableViewCellContentView"]
static int count=0;
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
NSLog(@"hit test view %@",[touch view]);
if(count >0 && count<=2)
{
count++;
count=count%2;
return FALSE;
}
count++;
if ([[[[touch view] class] description] isEqualToString:@"UITableViewCellContentView"]) {
return FALSE;
}
return TRUE;
}