Сетевое подключение
Так как Map Kit загружает данные из Google, для работы с картами потребуется сетевое подключение. В Simulator оно доступно (предполагается, что ваш Мае подключен к сети), однако на устройствах с ограниченными возможностями могут возникнуть проблемы в зависимости от местонахождения пользователя. Map Kit корректно справляется с подобными ситуациями, но вы должны помнить о них.
Как использовать эти возможности?
Пользовательская настройка карты.
Как и в случае с Core Location, организовать базовую поддержку Map Kit в iBountyHunter не так уж сложно. Мы создадим еще один приватный метод с именем initializeMapView, который будет вызываться из метода viewWillAppear класса CapturedPhotoViewController для отображения места поимки на гибридной карте (спутниковая + векторная информация).
Чем Core Location отличается от Map Kit?
Задача Map Kit — отображение карт, позиционно-зависимой информации и пользовательского интерфейса. Задача Core Location — предоставление пользователю информации о его текущем местонахождении. Перетащите карту на представление в Interface Builder; передайте несколько значений, и все заработает.
С другой стороны, Core Location возвращает данные делегату, и вы должны решить, что с ними делать. Например, наше приложение получает эту информацию от Core и предоставляет ее Мар Kit для отображения карты места поимки.
Откуда берутся все эти библиотеки? А если мне понадобится библиотека, которой нет в списке?
Библиотеки являются составной частью SDK. Конкретный путь к библиотекам зависит от версии и платформы, для которой вы программируете. Например, полный путь к используемой нами библиотеке Map Kit выглядит так: /Developer/Platforms/ iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3sdk/System/Library/ Frameworks/MapKit.framework. В общем случае новые библиотеки добавляются в Xcode описанным ранее способом, так что конкретный путь не так уж важен. Тем не менее при добавлении библиотеки, не входящей в список, можно задать в Xcode полный путь.
Реализуйте отображение карты с местом поимки преступника.
Добавьте библиотеку Map Kit и директиву #import.
Добавьте в проект библиотеку так, как это было сделано для Core Location. Заодно включите в детализированное представление директиву #import для включения заголовочного файла Map Kit.
Настройте представление с фотографией для отображения карты.
Вместо того чтобы создавать в приложении новое представление, добавьте карту в представление CapturedPhotoView с фотографией. Измените размеры изображения и кнопки, затем перетащите элемент MKMapView в нижнюю половину изображения.
- Дата: 10-01-2015, 18:19