Ссылка CGLayer
Объекты CGLayer полезны для внеэкранного получения и могут использоваться почти таким же способом, которым может использоваться растровый контекст. Фактически, объект CGLayer является намного лучшим представлением, чем растровый контекст.
Используя CGLayer объекты могут улучшить производительность, особенно когда необходимо получить часть рисования этого, Вы неоднократно штампуете (использующий тот же масштабный коэффициент и ориентацию). Кварц может кэшировать объекты CGLayer на видеокарту, делая рисование CGLayer месту назначения намного быстрее, чем рендеринг эквивалентного изображения созданный из растрового контекста.
Объект CGLayer создается относительно графического контекста. Несмотря на то, что уровень использует этот графический контекст в качестве ссылки для инициализации, Вы не ограничиваетесь рисованием уровня к этому графическому контексту. Можно нарисовать уровень к другим графическим контекстам, несмотря на то, что наложены любые ограничения исходного контекста. Например, при создании объекта CGLayer использование растрового контекста уровень представляется как битовый массив, когда нарисовано к любому другому графическому контексту.
Когда Вы хотите применить тень к группе объектов (таких как группа кругов), а не к отдельным объектам, можно использовать CGLayer.
Используйте эти уровни в своем коде каждый раз, когда Вы можете, особенно когда:
Необходимо снова использовать заполненную или перечеркиваемую форму.
Вы создаете сцену, и по крайней мере часть ее может быть снова использована. Вставьте допускающее повторное использование получение его собственный CGLayer.
Любой CG возражает, что Вы неоднократно рисуете — включая CGPath, CGShading, и CGPDFPage — получают преимущества от улучшенной производительности при рисовании его к объекту CGLayer.
-
Создает объект CGLayer, связанный с графическим контекстом.
Объявление
Swift
func CGLayerCreateWithContext(_context: CGContext!, _size: CGSize, _auxiliaryInfo: CFDictionary!) -> CGLayer!Objective C
CGLayerRef CGLayerCreateWithContext ( CGContextRef context, CGSize size, CFDictionaryRef auxiliaryInfo );Параметры
contextГрафический контекст Вы хотите создать уровень относительно. Уровень использует этот графический контекст в качестве ссылки для инициализации.
sizeРазмер, в модулях пространства пользователя по умолчанию, уровня относительно графического контекста.
auxiliaryInfoЗарезервированный для будущего использования. Передача
NULL.Возвращаемое значение
Объект CGLayer. Вы ответственны за выпуск этого объекта с помощью функции
CGLayerReleaseкогда Вам больше не нужен уровень.Обсуждение
После создания объекта CGLayer необходимо снова использовать его каждый раз, когда Вы можете для упрощения Кварцевой стратегии кэширования. Кварц кэширует любые объекты, снова использующиеся, включая объекты CGLayer. Объекты, снова использующиеся часто, остаются в кэше. Напротив, объекты, использующиеся время от времени, могут быть перемещены в и из кэша согласно их частоте использования. Если Вы не снова используете объекты CGLayer, то Кварц не будет кэшировать их. Это означает потерю возможности улучшить производительность приложения.
Оператор импорта
Objective C
@import CoreGraphics;Swift
import CoreGraphicsДоступность
Доступный в версии 10.4 OS X и позже.
-
Вовлекает содержание объекта CGLayer в указанный прямоугольник.
Объявление
Swift
func CGContextDrawLayerInRect(_context: CGContext!, _rect: CGRect, _layer: CGLayer!)Objective C
void CGContextDrawLayerInRect ( CGContextRef context, CGRect rect, CGLayerRef layer );Параметры
contextГрафический контекст связался с уровнем.
rectПрямоугольник, в текущих координатах пространства пользователя, для рисования к.
layerУровень, содержание которого Вы хотите нарисовать.
Обсуждение
Содержание масштабируется, при необходимости, для вписывания в прямоугольник.
Оператор импорта
Objective C
@import CoreGraphics;Swift
import CoreGraphicsДоступность
Доступный в версии 10.4 OS X и позже.
-
Рисует содержание объекта CGLayer в указанной точке.
Объявление
Swift
func CGContextDrawLayerAtPoint(_context: CGContext!, _point: CGPoint, _layer: CGLayer!)Objective C
void CGContextDrawLayerAtPoint ( CGContextRef context, CGPoint point, CGLayerRef layer );Параметры
contextГрафический контекст связался с уровнем.
pointРасположение, в текущих координатах пространства пользователя, для использования в качестве источника для получения.
layerУровень, содержание которого Вы хотите нарисовать.
Обсуждение
Вызывание функции
CGContextDrawLayerAtPointэквивалентно вызыванию функцииCGContextDrawLayerInRectс прямоугольником, возникающим вpointи его размер равняется размеру уровня.Оператор импорта
Objective C
@import CoreGraphics;Swift
import CoreGraphicsДоступность
Доступный в версии 10.4 OS X и позже.
-
Декременты сохранить количество объекта CGLayer.
Объявление
Objective C
void CGLayerRelease ( CGLayerRef layer );Параметры
layerУровень для выпуска.
Обсуждение
Эта функция эквивалентна вызову
CFRelease (layer)за исключением того, что это не отказывает (какCFRetainделает), еслиlayerпараметрnull.Оператор импорта
Objective C
@import CoreGraphics;Доступность
Доступный в версии 10.4 OS X и позже.
-
Инкременты сохранить количество объекта CGLayer.
Объявление
Objective C
CGLayerRef CGLayerRetain ( CGLayerRef layer );Параметры
layerУровень для сохранения.
Возвращаемое значение
Тот же уровень Вы передали в как
layerпараметр.Обсуждение
Эта функция эквивалентна вызову
CFRetain (layer)за исключением того, что это не отказывает (какCFRetainделает), еслиlayerпараметрnull.Оператор импорта
Objective C
@import CoreGraphics;Доступность
Доступный в версии 10.4 OS X и позже.
-
Возвращает уникальный идентификатор типа, используемый для объектов CGLayer.
Объявление
Swift
func CGLayerGetTypeID() -> CFTypeIDObjective C
CFTypeID CGLayerGetTypeID ( void );Возвращаемое значение
Идентификатор типа для объектов CGLayer.
Обсуждение
Идентификатор типа является целым числом, идентифицирующим непрозрачный тип, которому принадлежит Базовый объект Основы. Вы используете идентификаторы типов в различных контекстах, такой как тогда, когда Вы воздействуете на неоднородные наборы.
Оператор импорта
Objective C
@import CoreGraphics;Swift
import CoreGraphicsДоступность
Доступный в версии 10.4 OS X и позже.
-
Возвращает ширину и высоту объекта CGLayer.
Объявление
Swift
func CGLayerGetSize(_layer: CGLayer!) -> CGSizeObjective C
CGSize CGLayerGetSize ( CGLayerRef layer );Параметры
layerУровень, ширину которого и высоту Вы хотите получить.
Возвращаемое значение
Ширина и высота уровня, в координатах пространства пользователя по умолчанию.
Оператор импорта
Objective C
@import CoreGraphics;Swift
import CoreGraphicsДоступность
Доступный в версии 10.4 OS X и позже.
-
Возвращает графический контекст, связанный с объектом CGLayer.
Объявление
Swift
func CGLayerGetContext(_layer: CGLayer!) -> CGContext!Objective C
CGContextRef CGLayerGetContext ( CGLayerRef layer );Параметры
layerУровень, графический контекст которого Вы хотите получить.
Возвращаемое значение
Графический контекст связался с уровнем.
Обсуждение
Контекст это возвращается, является контекстом для самого уровня, не контекстом, который Вы указали при создании уровня.
Оператор импорта
Objective C
@import CoreGraphics;Swift
import CoreGraphicsДоступность
Доступный в версии 10.4 OS X и позже.
-
Непрозрачный тип используется для внеэкранного получения.
Объявление
Swift
typealias CGLayerRef = CGLayerObjective C
typedef struct CGLayer *CGLayerRef;Оператор импорта
Objective C
@import CoreGraphics;Swift
import CoreGraphicsДоступность
Доступный в OS X v10.4 и позже.
