UIScrollView карта с булавками, которые остаются на фиксированный размер? - PullRequest
1 голос
/ 10 марта 2010

В моем приложении у меня есть ScrollView, который показывает карту (просто JPEG). Поверх ScrollView я добавил несколько пинов (UIImageView) Пока все хорошо.

Но когда я увеличиваю изображение, контакты также становятся больше. Мне бы хотелось, чтобы контакты оставались фиксированного размера, как контакты в приложении Google Map на iPhone.

Как мне решить эту проблему?

Спасибо!

Ответы [ 2 ]

1 голос
/ 19 мая 2010

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

Если автоматическое изменение размера системы не сохраняет коэффициент запаса, вы можете реализовать layoutSubviews в пользовательском представлении контейнера.

1 голос
/ 19 мая 2010

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

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

В версии ОС> = 3.2 в UIScrollViewDelegate есть -scrollViewDidZoom:, где вы можете обновлять контакты до нужных координат по мере их прокрутки, и это прекрасно работает. Но в 3.1 нам не повезло. Я попытался запустить NSTimer и обновить координаты, но он не работает на устройстве.

В качестве запасного варианта я скрываю контакты при начале масштабирования (viewForZoomingInScrollView) и при завершении масштабирования (scrollViewDidEndZooming), обновляет их координаты и показывает их.

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