MKMapViewDelegate
MKMapViewDelegate
протокол определяет ряд дополнительных методов, которые можно использовать для получения связанных с картой сообщений обновления. Поскольку много операций карты требуют MKMapView
когда определенные операции завершаются, класс для загрузки данных асинхронно представление карты вызывает эти методы для уведомления приложения. Представление карты также использует эти методы, чтобы запросить аннотацию и представления наложения и управлять взаимодействиями с теми представлениями.
Прежде, чем выпустить MKMapView
объект, к которому Вы установили делегата, не забывает устанавливать тот объект delegate
свойство к nil
.
Наследование
Не применимый
Оператор импорта
Swift
import MapKit
Objective C
@import MapKit;
Доступность
Доступный в OS X v10.9 и позже.
-
Говорит делегату, что область, выведенная на экран представлением карты, собирается измениться.
Объявление
Swift
optional func mapView(_
mapView
: MKMapView!, regionWillChangeAnimatedanimated
: Bool)Objective C
- (void)mapView:(MKMapView *)
mapView
regionWillChangeAnimated:(BOOL)animated
Параметры
mapView
Представление карты, видимая область которого собирается измениться.
animated
Если
YES
true
, изменение в новой области будет анимировано. ЕслиNO
false
, изменение будет сразу внесено.Обсуждение
Этот метод вызывают каждый раз, когда изменяется в настоящее время выводимая на экран область карты. Во время прокрутки этот метод можно вызвать много раз для создания отчетов об обновлениях позиции карты. Поэтому Ваша реализация этого метода должна быть максимально легкой, чтобы избежать влиять на прокрутку производительности.
Оператор импорта
Objective C
@import MapKit;
Swift
import MapKit
Доступность
Доступный в OS X v10.9 и позже.
-
Говорит делегату, что область, выведенная на экран картой, просматривает просто измененный.
Объявление
Swift
optional func mapView(_
mapView
: MKMapView!, regionDidChangeAnimatedanimated
: Bool)Objective C
- (void)mapView:(MKMapView *)
mapView
regionDidChangeAnimated:(BOOL)animated
Параметры
mapView
Представление карты, видимая область которого изменилась.
animated
Если
YES
true
, изменение в новой области было анимировано.Обсуждение
Этот метод вызывают каждый раз, когда изменяется в настоящее время выводимая на экран область карты. Во время прокрутки этот метод можно вызвать много раз для создания отчетов об обновлениях позиции карты. Поэтому Ваша реализация этого метода должна быть максимально легкой, чтобы избежать влиять на прокрутку производительности.
Оператор импорта
Objective C
@import MapKit;
Swift
import MapKit
Доступность
Доступный в OS X v10.9 и позже.
-
Говорит делегату, что указанное представление карты собирается получить некоторые данные карты.
Объявление
Swift
optional func mapViewWillStartLoadingMap(_
mapView
: MKMapView!)Objective C
- (void)mapViewWillStartLoadingMap:(MKMapView *)
mapView
Параметры
mapView
Представление карты, начавшее загружать данные.
Обсуждение
Этот метод вызывают каждый раз, когда новая группа мозаик карты должна быть загружена с сервера. Это обычно происходит каждый раз, когда Вы представляете части карты путем панорамирования или изменения масштаба содержания. Можно использовать этот метод для маркировки времени, когда это берет для представления карты для загрузки данных.
Оператор импорта
Objective C
@import MapKit;
Swift
import MapKit
Доступность
Доступный в OS X v10.9 и позже.
-
Говорит делегату, что указанное представление карты успешно загрузило необходимые данные карты.
Объявление
Swift
optional func mapViewDidFinishLoadingMap(_
mapView
: MKMapView!)Objective C
- (void)mapViewDidFinishLoadingMap:(MKMapView *)
mapView
Параметры
mapView
Представление карты, запустившее работу загрузки.
Обсуждение
Когда мозаики карты, связанные с текущим запросом, были загружены, этот метод вызывают. Мозаики карты требуют, когда новая видимая область прокручивается в представление, и мозаики не уже доступны. Мозаики карты можно также требовать на части карты, которые не в настоящее время видимы. Например, представление карты может загрузить мозаики, сразу окружающие в настоящее время видимую область по мере необходимости для обработки маленьких панорамирований пользователем.
Оператор импорта
Objective C
@import MapKit;
Swift
import MapKit
Доступность
Доступный в OS X v10.9 и позже.
-
Говорит делегату, что указанное представление было неспособно загрузить данные карты.
Объявление
Параметры
mapView
Представление карты, запустившее работу загрузки.
error
Причина, что не могли быть загружены данные карты.
Обсуждение
Этот метод можно было бы вызвать в ситуациях, где устройство не имеет доступа к сети или неспособно загрузить данные карты по некоторым причинам. Это можно также вызвать, если запрос на дополнительные мозаики карты входит, в то время как предыдущий запрос на мозаики все еще находится на рассмотрении. Можно использовать это сообщение, чтобы уведомить пользователя, что данные карты недоступны.
Оператор импорта
Objective C
@import MapKit;
Swift
import MapKit
Доступность
Доступный в OS X v10.9 и позже.
-
Говорит делегату, что представление карты собирается начать представлять некоторые его мозаики.
Объявление
Swift
optional func mapViewWillStartRenderingMap(_
mapView
: MKMapView!)Objective C
- (void)mapViewWillStartRenderingMap:(MKMapView *)
mapView
Параметры
mapView
Представление карты, собирающееся начать представлять.
Обсуждение
Когда одна или более мозаик показаны и требуют рендеринга, представление карты вызывает этот метод.
Оператор импорта
Objective C
@import MapKit;
Swift
import MapKit
Доступность
Доступный в OS X v10.9 и позже.
-
Говорит делегату, что представление карты закончило представлять все видимые мозаики.
Объявление
Swift
optional func mapViewDidFinishRenderingMap(_
mapView
: MKMapView!, fullyRenderedfullyRendered
: Bool)Objective C
- (void)mapViewDidFinishRenderingMap:(MKMapView *)
mapView
fullyRendered:(BOOL)fullyRendered
Параметры
mapView
Представление карты, представлявшее его мозаики.
fullyRendered
Этот параметр устанавливается на
YES
true
если представление карты смогло представить все мозаики полностью илиNO
false
если ошибки препятствовали тому, чтобы были представлены все мозаики.Обсуждение
Когда представление карты заканчивает представлять все в настоящее время видимые мозаики в меру его возможности, этот метод сообщает. Этот метод вызывают независимо от того, были ли все мозаики представлены успешно. Если были ошибки, загружающие одну или более мозаик, препятствовавших тому, чтобы представление карты представило их,
fullyRendered
параметр устанавливается наNO
false
.Оператор импорта
Objective C
@import MapKit;
Swift
import MapKit
Доступность
Доступный в OS X v10.9 и позже.
См. также
-
Говорит делегату, что представление карты начнет отслеживать позицию пользователя.
Объявление
Swift
optional func mapViewWillStartLocatingUser(_
mapView
: MKMapView!)Objective C
- (void)mapViewWillStartLocatingUser:(MKMapView *)
mapView
Параметры
mapView
Представление карты, отслеживающее расположение пользователя.
Обсуждение
Этот метод вызывают когда значение
showsUserLocation
свойство изменяется наYES
true
.Оператор импорта
Objective C
@import MapKit;
Swift
import MapKit
Доступность
Доступный в OS X v10.9 и позже.
-
Говорит делегату, что представление карты прекратило отслеживать расположение пользователя.
Объявление
Swift
optional func mapViewDidStopLocatingUser(_
mapView
: MKMapView!)Objective C
- (void)mapViewDidStopLocatingUser:(MKMapView *)
mapView
Параметры
mapView
Представление карты, прекратившее отслеживать расположение пользователя.
Обсуждение
Этот метод вызывают когда значение
showsUserLocation
свойство изменяется наNO
false
.Оператор импорта
Objective C
@import MapKit;
Swift
import MapKit
Доступность
Доступный в OS X v10.9 и позже.
-
Говорит делегату, что было обновлено расположение пользователя.
Объявление
Swift
optional func mapView(_
mapView
: MKMapView!, didUpdateUserLocationuserLocation
: MKUserLocation!)Objective C
- (void)mapView:(MKMapView *)
mapView
didUpdateUserLocation:(MKUserLocation *)userLocation
Параметры
mapView
Представление карты, отслеживающее расположение пользователя.
userLocation
Объект расположения представление последнего расположения пользователя. Это свойство может быть
nil
.Обсуждение
В то время как
showsUserLocation
свойство установлено вYES
true
, этот метод вызывают каждый раз, когда новое обновление информации о местоположении получено представлением карты. Если пользовательский режим отслеживания представления карты установлен в, этот метод также вызываютMKUserTrackingModeFollowWithHeading
и возглавляющие изменения.Если приложение в настоящее время работает в фоновом режиме, этот метод не вызывают. Если Вы хотите получить обновления информации о местоположении при выполнении в фоновом режиме, необходимо использовать Базовую платформу Расположения.
Оператор импорта
Objective C
@import MapKit;
Swift
import MapKit
Доступность
Доступный в OS X v10.9 и позже.
-
Говорит делегату что попытка определить местоположение отказавшей позиции пользователя.
Объявление
Параметры
mapView
Представление карты, отслеживающее расположение пользователя.
error
Ошибочный объект, содержащий причину, почему отслеживание расположения перестало работать.
Оператор импорта
Objective C
@import MapKit;
Swift
import MapKit
Доступность
Доступный в OS X v10.9 и позже.
-
Возвращает представление, связанное с указанным объектом пометок.
Объявление
Swift
optional func mapView(_
mapView
: MKMapView!, viewForAnnotationannotation
: MKAnnotation!) -> MKAnnotationView!Objective C
- (MKAnnotationView *)mapView:(MKMapView *)
mapView
viewForAnnotation:(id<MKAnnotation>)annotation
Параметры
mapView
Представление карты, запросившее представление аннотации.
annotation
Объект, представляющий аннотацию, собирающуюся быть выведенной на экран. В дополнение к Вашим пользовательским аннотациям этот объект мог быть
MKUserLocation
объект, представляющий текущее расположение пользователя.Возвращаемое значение
Представление аннотации для отображения для указанной аннотации или
nil
если Вы хотите вывести на экран стандартное представление аннотации.Обсуждение
Вместо того, чтобы создавать новое представление каждый раз, когда этот метод вызывают, необходимо использовать
dequeueReusableAnnotationViewWithIdentifier:
методMKMapView
класс, чтобы видеть, существует ли уже существующее представление аннотации желаемого типа. Если Вы действительно существуете, необходимо обновить представление, чтобы отразить атрибуты указанной аннотации и возвратить его. Если представление надлежащего типа не существует, необходимо создать один, сконфигурировать его с необходимыми данными аннотации и возвратить его.Если объект в
annotation
параметр является экземпляромMKUserLocation
класс, можно обеспечить пользовательское представление для обозначения расположения пользователя. Для отображения расположения пользователя с помощью системного представления по умолчанию возвратитьсяnil
.Если Вы возвращаетесь, если Вы не реализуете этот метод, или
nil
от Вашей реализации для аннотаций кроме пользовательской аннотации расположения представление карты использует стандартное представление аннотации контакта.Оператор импорта
Objective C
@import MapKit;
Swift
import MapKit
Доступность
Доступный в OS X v10.9 и позже.
-
Говорит делегату, что одно или более представлений аннотации были добавлены к карте.
Объявление
Swift
optional func mapView(_
mapView
: MKMapView!, didAddAnnotationViewsviews
: [AnyObject]!)Параметры
mapView
Представление карты, добавившее представления аннотации.
views
Массив
MKAnnotationView
объекты, представляющие добавленные представления.Обсуждение
К тому времени, когда этот метод вызывают, указанные представления уже добавляются к карте.
Оператор импорта
Objective C
@import MapKit;
Swift
import MapKit
Доступность
Доступный в OS X v10.9 и позже.
-
mapView (_: annotationView:didChangeDragState:fromOldState:) - mapView:annotationView:didChangeDragState:fromOldState:
Говорит делегату что состояние перетаскивания одного из его измененных представлений аннотации.
Объявление
Swift
optional func mapView(_
mapView
: MKMapView!, annotationViewannotationView
: MKAnnotationView!, didChangeDragStatenewState
: MKAnnotationViewDragState, fromOldStateoldState
: MKAnnotationViewDragState)Objective C
- (void)mapView:(MKMapView *)
mapView
annotationView:(MKAnnotationView *)annotationView
didChangeDragState:(MKAnnotationViewDragState)newState
fromOldState:(MKAnnotationViewDragState)oldState
Параметры
mapView
Представление карты, содержащее представление аннотации.
annotationView
Представление аннотации, чье перетаскивают измененное состояние.
newState
Новое состояние перетаскивания представления аннотации.
oldState
Предыдущее состояние перетаскивания представления аннотации.
Обсуждение
Состояние перетаскивания обычно изменяется в ответ на взаимодействие с пользователем с представлением аннотации. Однако само представление аннотации ответственно за изменение того состояния также.
Оператор импорта
Objective C
@import MapKit;
Swift
import MapKit
Доступность
Доступный в OS X v10.9 и позже.
-
Говорит делегату, что было выбрано одно из его представлений аннотации.
Объявление
Swift
optional func mapView(_
mapView
: MKMapView!, didSelectAnnotationViewview
: MKAnnotationView!)Objective C
- (void)mapView:(MKMapView *)
mapView
didSelectAnnotationView:(MKAnnotationView *)view
Параметры
mapView
Представление карты, содержащее представление аннотации.
view
Выбранное представление аннотации.
Обсуждение
Можно использовать этот метод для отслеживания изменений в состоянии выбора представлений аннотации.
Оператор импорта
Objective C
@import MapKit;
Swift
import MapKit
Доступность
Доступный в OS X v10.9 и позже.
-
Говорит делегату, что было невыбранным одно из его представлений аннотации.
Объявление
Swift
optional func mapView(_
mapView
: MKMapView!, didDeselectAnnotationViewview
: MKAnnotationView!)Objective C
- (void)mapView:(MKMapView *)
mapView
didDeselectAnnotationView:(MKAnnotationView *)view
Параметры
mapView
Представление карты, содержащее представление аннотации.
view
Представление аннотации, которое было невыбранным.
Обсуждение
Можно использовать этот метод для отслеживания изменений в состоянии выбора представлений аннотации.
Оператор импорта
Objective C
@import MapKit;
Swift
import MapKit
Доступность
Доступный в OS X v10.9 и позже.
-
Спрашивает делегат к объекту средства рендеринга использовать при рисовании указанного наложения.
Объявление
Swift
optional func mapView(_
mapView
: MKMapView!, rendererForOverlayoverlay
: MKOverlay!) -> MKOverlayRenderer!Objective C
- (MKOverlayRenderer *)mapView:(MKMapView *)
mapView
rendererForOverlay:(id<MKOverlay>)overlay
Параметры
mapView
Представление карты, запросившее объект средства рендеринга.
overlay
Объект наложения, собирающийся быть выведенным на экран.
Возвращаемое значение
Средство рендеринга для использования при представлении указанного наложения на карте. Если Вы возвращаетесь
nil
, никакое содержание не нарисовано для указанного объекта наложения.Обсуждение
Необходимо реализовать этот метод и использовать его для обеспечения надлежащего объекта средства рендеринга для оверлейных программ. Объект средства рендеринга ответственен за рисование содержания Вашего наложения, когда спросили сделать так представлением карты. Набор карты поддерживает много различных типов стандартных объектов средства рендеринга, и можно также определить собственные средства рендеринга.
Оператор импорта
Objective C
@import MapKit;
Swift
import MapKit
Доступность
Доступный в OS X v10.9 и позже.
-
Говорит делегату, что один или несколько объектов средства рендеринга были добавлены к карте.
Объявление
Swift
optional func mapView(_
mapView
: MKMapView!, didAddOverlayRenderersrenderers
: [AnyObject]!)Параметры
mapView
Представление карты, добавившее объекты средства рендеринга.
renderers
Добавленные объекты средства рендеринга.
Обсуждение
Представление карты добавляет объекты средства рендеринга, когда ему нужны они для рисования их содержания, которое могло бы быть до того появляющегося на экране содержания. Это вызывает этот метод, чтобы сообщить, что средство рендеринга активно и в использовании. К тому времени, когда этот метод вызывают, указанные средства рендеринга были уже добавлены к карте.
Оператор импорта
Objective C
@import MapKit;
Swift
import MapKit
Доступность
Доступный в OS X v10.9 и позже.