Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека Разработчика iOS

Разработчик

Ссылка платформы MapKit ссылка класса MKOverlayView

Опции
Развертывание Target:

На этой странице
Язык:

MKOverlayView

Наследование


Оператор импорта


Swift

import MapKit

Objective C

@import MapKit;

Доступность


Доступный в iOS 4.0 и позже.

MKOverlayView класс определяет основное поведение, связанное со всеми представлениями наложения. Представление наложения обеспечивает визуальное представление объекта наложения — т.е. объект, соответствующий MKOverlay протокол. Этот класс определяет инфраструктуру получения, используемую представлением карты, но не делает никакого фактического получения. Подклассы, как ожидают, переопределят drawMapRect:zoomScale:inContext: метод для рисования содержания представления наложения.

Платформа Набора Карты обеспечивает несколько конкретных экземпляров представлений наложения. В частности это обеспечивает представления наложения для каждого из конкретных объектов наложения. Если Вы хотите нарисовать содержание наложения по-другому, можно использовать одно из этих существующих представлений наложения или определить собственный подкласс.

В iOS 7 и позже, используйте MKOverlayRenderer класс для отображения оверлейных программ вместо этого.

Разделение на подклассы примечаний

Можно разделить на подклассы MKOverlayView создать оверлейные программы на основе пользовательских форм и содержания. Единственные подклассы метода, как ожидают, переопределят, drawMapRect:zoomScale:inContext: метод. Однако, если Ваш класс содержит содержание, которое может не быть готово к праву заимствования далеко, необходимо также переопределить canDrawMapRect:zoomScale: метод и использование это для создания отчетов, когда класс готов и в состоянии нарисовать.

Реализация Вашего drawMapRect:zoomScale:inContext: метод должно быть безопасно выполнить от многократных потоков одновременно. Для улучшения производительности представление карты может разместить рядом оверлейные программы, которые являются достаточно большими и распределяют рендеринг каждой мозаики для разделения потоков.

  • - initWithOverlay: (iOS 7.0) определяемый инициализатор

    Инициализирует и возвращает представление наложения и связывает его с указанным объектом наложения.

    Оператор осуждения

    Используйте MKOverlayRenderer объект вместо этого.

    Объявление

    Objective C

    - (instancetype)initWithOverlay:(id<MKOverlay>)overlay

    Параметры

    overlay

    Объект наложения для использования при рисовании наложения на карте. Этот объект предоставляет данные, должен был нарисовать форму наложения. Этот объект сохраняется представлением наложения.

    Возвращаемое значение

    Инициализированный объект наложения.

    Обсуждение

    На инициализацию кадр представления наложения установлен в CGRectZero. Представление карты устанавливает размер и позицию представления во время дисплея, и Вы не должны изменять те значения сами.

    Оператор импорта

    Objective C

    @import MapKit;

    Доступность

    Доступный в iOS 4.0 и позже.

    Осуждаемый в iOS 7.0.

  • overlay (iOS 7.0) Свойство

    Объект наложения, содержащий данные для рисования. (только для чтения)

    Оператор осуждения

    Используйте MKOverlayRenderer объект вместо этого.

    Объявление

    Objective C

    @property(nonatomic, readonly) id< MKOverlay > overlay

    Оператор импорта

    Objective C

    @import MapKit;

    Доступность

    Доступный в iOS 4.0 и позже.

    Осуждаемый в iOS 7.0.

  • Возвращает точку в представлении наложения, соответствующем указанной точке на карте.

    Оператор осуждения

    Используйте MKOverlayRenderer объект вместо этого.

    Объявление

    Objective C

    - (CGPoint)pointForMapPoint:(MKMapPoint)mapPoint

    Параметры

    mapPoint

    Точка на двумерной проекции карты. Если у Вас есть координатное значение (широта и долгота), можно использовать MKMapPointForCoordinate функционируйте для преобразования той координаты в точку карты.

    Возвращаемое значение

    Точка в системе координат получателя, соответствующей точке карты.

    Специальные замечания

    Поскольку границы и прямоугольники кадра представления наложения не изменяются после того, как представление было создано, можно вызвать этот метод от многократных потоков одновременно. Поэтому можно вызвать этот метод безопасно от представления drawMapRect:zoomScale:inContext: метод.

    Оператор импорта

    Objective C

    @import MapKit;

    Доступность

    Доступный в iOS 4.0 и позже.

    Осуждаемый в iOS 7.0.

    См. также

    – mapPointForPoint:

  • Возвращает точку карты, соответствующую указанной точке в представлении наложения.

    Оператор осуждения

    Используйте MKOverlayRenderer объект вместо этого.

    Объявление

    Objective C

    - (MKMapPoint)mapPointForPoint:(CGPoint)point

    Параметры

    point

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

    Возвращаемое значение

    Точка на двумерной проекции карты, соответствующей указанной точке.

    Специальные замечания

    Поскольку границы и прямоугольники кадра представления наложения не изменяются после того, как представление было создано, можно вызвать этот метод от многократных потоков одновременно. Поэтому можно вызвать этот метод безопасно от представления drawMapRect:zoomScale:inContext: метод.

    Оператор импорта

    Objective C

    @import MapKit;

    Доступность

    Доступный в iOS 4.0 и позже.

    Осуждаемый в iOS 7.0.

    См. также

    – pointForMapPoint:

  • - rectForMapRect: (iOS 7.0)

    Возвращает прямоугольник в представлении наложения, соответствующем указанному прямоугольнику на карте.

    Оператор осуждения

    Используйте MKOverlayRenderer объект вместо этого.

    Объявление

    Objective C

    - (CGRect)rectForMapRect:(MKMapRect)mapRect

    Параметры

    mapRect

    Прямоугольник на двумерной проекции карты.

    Возвращаемое значение

    Прямоугольник указан в системе координат получателя.

    Специальные замечания

    Поскольку границы и прямоугольники кадра представления наложения не изменяются после того, как представление было создано, можно вызвать этот метод от многократных потоков одновременно. Поэтому можно вызвать этот метод безопасно от представления drawMapRect:zoomScale:inContext: метод.

    Оператор импорта

    Objective C

    @import MapKit;

    Доступность

    Доступный в iOS 4.0 и позже.

    Осуждаемый в iOS 7.0.

    См. также

    – mapRectForRect:

  • - mapRectForRect: (iOS 7.0)

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

    Оператор осуждения

    Используйте MKOverlayRenderer объект вместо этого.

    Объявление

    Objective C

    - (MKMapRect)mapRectForRect:(CGRect)rect

    Параметры

    rect

    Прямоугольник указан в системе координат получателя.

    Возвращаемое значение

    Прямоугольник на двумерном проекте карты, соответствующем указанному прямоугольнику представления.

    Специальные замечания

    Поскольку границы и прямоугольники кадра представления наложения не изменяются после того, как представление было создано, можно вызвать этот метод от многократных потоков одновременно. Поэтому можно вызвать этот метод безопасно от представления drawMapRect:zoomScale:inContext: метод.

    Оператор импорта

    Objective C

    @import MapKit;

    Доступность

    Доступный в iOS 4.0 и позже.

    Осуждаемый в iOS 7.0.

    См. также

    – rectForMapRect:

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

    Оператор осуждения

    Используйте MKOverlayRenderer объект вместо этого.

    Объявление

    Objective C

    - (BOOL)canDrawMapRect:(MKMapRect)mapRect zoomScale:(MKZoomScale)zoomScale

    Параметры

    mapRect

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

    zoomScale

    Текущий масштабный коэффициент применился к карте.

    Возвращаемое значение

    YEStrue если это представление готово нарисовать свое содержание или NOfalse если это не.

    Обсуждение

    Представления наложения могут переопределить этот метод в ситуациях, где они могут зависеть от доступности другой информации для рисования их содержания. Например, представление наложения, показывающее информацию о трафике, могло бы хотеть задержать получение, пока это не имеет все данные трафика, в которых это нуждается. В таком случае это может возвратиться NOfalse от этого метода, чтобы указать, что это не готово.

    Если Вы возвращаетесь NOfalse от этого метода Ваше приложение ответственно за вызов setNeedsDisplayInMapRect:zoomScale: метод, когда представление наложения впоследствии становится готовым нарисовать его содержание.

    Реализация по умолчанию этого метода возвраты YEStrue.

    Оператор импорта

    Objective C

    @import MapKit;

    Доступность

    Доступный в iOS 4.0 и позже.

    Осуждаемый в iOS 7.0.

  • Рисует содержание представления наложения.

    Оператор осуждения

    Используйте MKOverlayRenderer объект вместо этого.

    Объявление

    Objective C

    - (void)drawMapRect:(MKMapRect)mapRect zoomScale:(MKZoomScale)zoomScale inContext:(CGContextRef)context

    Параметры

    mapRect

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

    zoomScale

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

    context

    Графический контекст для использования для рисования содержания представления.

    Обсуждение

    Реализация по умолчанию этого метода ничего не делает. Подклассы, как ожидают, переопределят этот метод (вместо drawRect: метод) и использование это для рисования содержания представления.

    В Вашем коде для прорисовки необходимо указать позицию любого представленного содержания относительно самой карты а не относительно границ или кадра представления. Другими словами, вычислите позицию и размер любого содержания наложения, использующего точки карты и прямоугольники карты, преобразуйте те значения в CGPoint и CGRect типы (использующий методы этого класса), и затем используют преобразованные точки, чтобы создать пути или указать расположение рендеринга для элементов.

    Вы не должны также делать предположения, что кадр представления соответствует ограничительный прямоугольник наложения. Кадр представления фактически больше, чем ограничительный прямоугольник, чтобы позволить Вам проводить линии для вещей как дороги, которые могли бы быть расположены непосредственно на границе того прямоугольника. Для некоторых типов содержания, таких как градиенты, это также означает, что Вы, возможно, должны были бы применить прямоугольник отсечения к context гарантировать получение содержится к корректной области.

    Рекомендуется использовать Базовую Графику для рисования любого содержания для оверлейных программ. Если Вы принимаете решение использовать классы UIKit и методы для рисования вместо этого, необходимо продвинуть указанный графический контекст на штабель контекста (использующий UIGraphicsPushContext функция) прежде, чем сделать любые звонки получения. Когда Вы сделаны, таща, необходимо так же вытолкать графический контекст от штабеля с помощью UIGraphicsPopContext. Во время получения Вы можете обычно рисовать содержание, но должны избежать управлять представлениями и другими классами, которые безопасно использовать только от основного потока приложения.

    Для улучшения производительности получения представление карты может разместить рядом оверлейные программы, становящиеся достаточно большими и представляющие мозаики от отдельных потоков. Ваша реализация этого метода должна поэтому быть способна к безопасному выполнению от многократных потоков одновременно. Кроме того, необходимо избежать рисовать все содержание наложения каждый раз, когда этот метод вызывают. Вместо этого Ваша реализация должна всегда брать mapRect параметр в рассмотрение и избегает рисовать содержание вне того прямоугольника. Отказ сделать так мог привести к проблемам производительности.

    Оператор импорта

    Objective C

    @import MapKit;

    Доступность

    Доступный в iOS 4.0 и позже.

    Осуждаемый в iOS 7.0.

  • Лишает законной силы представление в данном прямоугольнике карты во всех масштабах изменения масштаба.

    Оператор осуждения

    Используйте MKOverlayRenderer объект вместо этого.

    Объявление

    Objective C

    - (void)setNeedsDisplayInMapRect:(MKMapRect)mapRect

    Параметры

    mapRect

    Часть наложения, которое должно быть обновлено. Это значение указано с помощью прямоугольника карты и не координат представления. Можно преобразовать от прямоугольника представления до прямоугольника карты с помощью mapRectForRect: метод.

    Обсуждение

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

    Оператор импорта

    Objective C

    @import MapKit;

    Доступность

    Доступный в iOS 4.0 и позже.

    Осуждаемый в iOS 7.0.

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

    Оператор осуждения

    Используйте MKOverlayRenderer объект вместо этого.

    Объявление

    Objective C

    - (void)setNeedsDisplayInMapRect:(MKMapRect)mapRect zoomScale:(MKZoomScale)zoomScale

    Параметры

    mapRect

    Часть наложения, которое должно быть обновлено. Это значение указано с помощью прямоугольника карты и не координат представления. Можно преобразовать от прямоугольника представления до прямоугольника карты с помощью mapRectForRect: метод.

    zoomScale

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

    Обсуждение

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

    Оператор импорта

    Objective C

    @import MapKit;

    Доступность

    Доступный в iOS 4.0 и позже.

    Осуждаемый в iOS 7.0.