Рисование модели

Рисование в iOS и OS X следует за одним из двух технологических путей и основывается на модели, в которой представления обновляют свое появление по требованию. Для рисования содержания приложения, можно использовать или OpenGL или собственные средства рендеринга платформы.

OpenGL, представляющий часто, использует классы представления, определенные средами разработки приложения UIKit и AppKit; когда это делает, некоторые аспекты модели получения подобны этому для собственного рендеринга. Однако приложения OpenGL не должны основываться на представлениях.

Представление Рисует Себя, Когда Необходимо в Его drawRect: Метод

Главный элемент модели получения доволен обновление по требованию. Представление рисует свое содержание в drawRect: метод, который базовый класс представления (NSView или UIView) объявляет и подкласс представления переопределения. Прямоугольник, переданный в метод, идентифицирует область представления, которое должно быть перерисовано. В первый раз, когда представление появляется в окне, прямоугольник соответствует границы представления, и представление рисует все свое содержание. Впоследствии, представление рисует себя только, когда необходимый и рисует только, что часть себя, который изменился.

Art/drawing_model.jpg

Несколько действий могут инициировать обновление представления:

  • Код делает ранее скрытое представление видимым снова путем установки hidden свойство к NO.

  • Код явно лишает законной силы представление

    Чтобы лишить законной силы представление, и таким образом отметить его для перерисовки, Вы вызываете методы такой как setNeedsDisplay: или setNeedsDisplayInRect: на представлении.

  • Для представлений, не поддерживающихся уровнем, пользователь перемещает или удаляет представление, частично затенявшее другое представление.

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

Присутствие Базовых Слоев анимации влияет на поведение получения представлений. Уровни позволяют представлению кэшировать свое содержание в битовом массиве, которым можно тогда управлять, не требуя дополнительного получения. Все представления в iOS поддерживаются уровнем. В OS X необходимо выбрать - в к уровню, отступающему путем включения поддержки его в иерархиях представления. В OS X можно также указать политику перерисовки, которая является самой эффективной для поддержанных уровнем представлений.

В конце цикла основного цикла событий окно продолжает вниз свою иерархию представления и запрашивает эти представления привлечь себя путем вызова их drawRect: методы.

Графический контекст устанавливает среду получения

NSView и UIView автоматически сконфигурируйте среду получения представления перед drawRect: метод вызывается. (В платформе AppKit, конфигурируя среду получения вызывается, блокируя фокус.) Как часть этой конфигурации, класс представления создает графический контекст для текущей среды получения.

Этот графический контекст является Кварцевым объектом (CGContext) это содержит информацию, которую система получения запрашивает, такие как цвета для применения, режим получения (штрих или заливка), ширина строки и информация о стилях, информация о шрифтах и составление композита опций. (В AppKit, объекте NSGraphicsContext класс обертывает a CGContext объект.) Графический объект контекста связан с окном, битовым массивом, файлом PDF или другим устройством вывода и поддерживает информацию о текущем состоянии среды получения для того объекта. Представление рисует использование графического контекста, связанного с окном представления. Для представления графический контекст устанавливает область отсечения значения по умолчанию для совпадения с границами представления и помещает источник рисования значения по умолчанию в источник границ представления.

Получение имеет место в системе локальной координаты представления

Представление рисует себя в своей системе локальной координаты. Представление bounds свойство служит для определения расположения точек в этой системе координат.

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

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

Необходимые как условие статьи

Похожие статьи

Категорическое обсуждение

    Руководство по рисованию какао

Проекты примера кода

  • Кварц 2D преобразователь
  • BezierPathLab