Главная » iPhone » Графическое программирование с использованием Core Surface и Quartz Core для опытных пользователей iPhone

0

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

Платформа Quartz Core, ранее известная как Quartz Core, предоставляет базовые классы для управления уровнями в рамках объектов вида. Она также используется для склейки буфера Core Surface с объектом на экране и создания ЗЭ-трансформаций 2Э-объектов для анимаций и других графических эффектов.

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

Уровни

Уровень (layer)— это объект низкого уровня, имеющийся во многих визуализируемых классах. Уровни аналогичны листам доски объявлений, которой принадлежит содержимое объекта. Уровень ведет себя как гибкая подложка для отображаемого содержимого объекта и может сгибать или скручивать объект на экране несколькими способами. Каждый объект, который может визуализировать себя (а таковыми являются объекты, которые порождены or класса uiview), имеет, по крайней мере, один уровень, к которому привязано его содержимое.

Например, класс uiimageview содержит всю основную информацию об изображении: область его отображения, разрешение и различные методы для работы с изображением. Само изображение привязано к некоторому уровню, а этот уровень используется для отображения данного изображения. Большинство основных уровней ведет себя как единый чистый лист и всего лишь отображает изображение, как оно есть. Более продвинутые классы, например, UlCompositelmageView (описываемый в главе 7), состоят из множества уровней, которые рассматриваются как диапозитивы, каждый со своим содержимым, сложенные друг на друга для создания одного составного изображения.

Будучи гибкими, уровни могут использоваться для управления изображением. Класс уровня CALayer управляет тем, как ведет себя эта "гибкая подложка" после своего отображения. Если вы согнете уровень, то вместе с ним будет согнуто и изображение. Если вы повернете уровень, то изображение тоже будет повернуто. Можно абсолютно легко и просто настраивать прозрачность уровня (alpha), добавлять анимацию или же поворачивать, наклонять и масштабировать объект. Объект, находящийся на вершине уровня, совершенно не помнит о том, как с ним поступали, позволяя вашей программе продолжать видеть изображение (или другой объект), как если бы это был все еще 20-объект. Однако когда пользователь видит изображение, то он принимает ту форму, которую получил уровень.

Уровень не ограничивается только хранением содержимого изображения. В уровне также располагается вывод экрана для uiTextview или любого другого класса вида, описанного в главе 3. Это означает, что панели навигации, таблицы, текстовые поля и многие другие типы классов видов могут изменяться, масштабироваться и даже анимироваться.

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

Поверхности экрана

Поверхность экрана (screen surface) — это объект Core Surface, используемый для получения доступа к буферу необработанных пикселов, выводимых напрямую в уровень. Он позволяет использовать высокоэффективную 2D- графику в видеопроигрывателях, современных играх или других приложениях, которым необходимо выводить необработанные пикселы прямо на экран. Core Surface поддерживает несколько различных конфигураций значений цветов для размещения различных типов пиксельных данных.

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

Источник: Здзиарски Дж. iPhone. Разработка приложений с открытым кодом: Пер„с англ. — 2-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2009. — 368 е.: ил.

По теме:

  • Комментарии