2010-04-02 2 views
2

Мы имеем MKmapView с кучей изображения Аннотации, где каждый аннотации изображения реагирует на прикосновения пути переопределения этих методов AnnotationView подкласса:MkMapView setRegion анимации предотвращает событие прикосновения на аннотационных Просмотрах

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
-(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

Нашей карта регион обновляется с использованием

[MkMapView setRegion:animated:] 

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

То, что я заметил, что, если мы устанавливаем анимированные флаг в YES штрихи на нашем аннотацию редко обнаруживаются (вероятно, связано с тем, что основной поток занят оживляющий между двумя областями карты. Когда мы анимированный флаг NO, все нормально, но карта переход может (или не может) стать рывками

вопрос у меня есть, является ли это ожидаемое поведением анимационных флага [MkMapView setRegion:. анимационное ] или t вот обходной путь для этой проблемы.

Заранее спасибо

ответ

4

Обычно MapView анимируемого не его userInteractionEnabled свойство устанавливается в не во время анимации. Если вам нужно изменить это поведение, вы должны подклассифицировать представление и переопределить соответствующие методы.

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

+0

Спасибо за указатель на изменения свойств пользователяInteractionEnabled, я не смог найти информацию о том, почему и когда система может решить изменить это свойство. Тем не менее, я могу потенциально слушать его изменения через KVO и переключать его обратно, когда это необходимо. –

+0

Однако наше приложение имеет панель навигации с кнопками выше mkMapView. И проблема в том, что во время анимации setRegion не только комментарии аннотаций не реагируют на касания, но и кнопки на панели инструментов. Если [MkMapView setRegion: region animated: YES] блокирует основной поток, имеет смысл только, что кнопки не реагируют. –

+0

@VladimirGurovich Как этот ответ решает вашу проблему? Я наблюдаю свойство userInteractionEnabled, и там никаких изменений нет. – vrwim

Смежные вопросы