2016-08-22 1 views
0

Мне нужно реализовать в виде пяти mapViews конкретного местоположения (координат). Я реализую пять mapViews в UICollectionViewController (5 строк, один mapView для каждой строки). В запущенном приложении он потребляет много памяти (более 200 МБ).Apple Maps потребляет слишком много памяти

Я предполагаю, что каждая карта загружает весь мир, это много рабочих мест. Но то, что мне нужно, это отображать только текущие координаты, которые я предоставляю, а не весь мир. Любая идея или предложение сделать mapViews легче? Могу ли я показать карту для конкретной области (координат) и радиуса, не позволяя загружать весь мир?

+0

Уверены ли вы, что проблема - это вид карты, а не утечка памяти? например вы создаете новый вид карты каждый раз, когда ячейка перезагружается? – PeejWeej

+1

Нужны ли картам взаимодействия? Если нет, вы можете просто создать изображения, которые находятся на карте, и отобразить изображения. – PeejWeej

+0

Вы использовали инструмент Allocations Tool, чтобы понять, как ваше приложение потребляет память? Если да, разместите соответствующий вывод, а также разместите соответствующий код. –

ответ

2

Ожидается, что MapView займет много места. MapView - это не просто просмотр, есть много вещей, которые входят в создание экземпляра mapView. Например, изображения и данные для местоположения, отображаемые на картеView.

Для вашего случая использования я настоятельно рекомендую использовать MKMapSnapshotter. Вот ссылка для документации - https://developer.apple.com/library/mac/documentation/MapKit/Reference/MKMapSnapshotter_class/