Анимация MkMapView setRegion предотвращает сенсорные события в представлениях аннотаций - PullRequest
2 голосов
/ 02 апреля 2010

У нас есть MKmapView с кучей аннотаций изображений, где каждая аннотация изображения реагирует на прикосновения переопределив эти методы подкласса AnnotationView:

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

Регион нашей карты обновляется с помощью

[MkMapView setRegion:animated:]

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

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

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

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

1 Ответ

4 голосов
/ 06 апреля 2010

Как правило, анимируемое представление карты имеет свойство userInteractionEnabled, установленное на no во время анимации. Если вам нужно изменить это поведение, вы должны создать подкласс представления и переопределить соответствующие методы.

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

...