Ссылка 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() -> CFTypeID
Objective 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 = CGLayer
Objective C
typedef struct CGLayer *CGLayerRef;
Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.4 и позже.