Главная » iPhone » Отображение поверхности экрана iPhone

0

Прежде чем поверхность экрана сможет быть отображена, она должна быть привязана к какому-либо уровню. С помощью объекта Quartz Core CALayer создайте новый уровень:

CALayer *screenLayer;

screenLayer = [ [ CALayer layer ] retain ]; [ screenLayer setFrame: viewRect ]; [ screenLayer setOpaque: YES ];

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

CoreSurfaceBufferLock(screenSurface, 3); [ screenLayer setContents: screenSurface ]; CoreSurfaceBufferUnlock(screenSurface);

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

[ [ self _layer ] addSublayer: screenLayer );

Теперь поверхность экрана привязана к уровню, а уровень добавлен к виду. Если в объекте uiview существуют другие уровни, то новый уровень будет помещен поверх предыдущих уровней. Это означает, что вам придется настроить его прозрачность (alpha), чтобы увидеть нижележащие уровни.

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

По теме:

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