Непрерывно рисовать в растровом объекте iPhone?Что мне не хватает? - PullRequest
3 голосов
/ 12 октября 2010

Я почти уверен, что это простая проблема, в которой я должен быть сбит с толку (я новичок в iPhone): я пытаюсь непрерывно рисовать фигуры с помощью API CG в растровом объекте и всегда отображать актуальная версия этого растрового изображения на экране внутри объекта UIScrollView, чтобы пользователь мог панорамировать, масштабировать и т. д.

Использование UIView с drawRect бесполезно, потому что это постоянная вещь - у меня есть отдельный поток, в котором выдаются все команды рисования, и мне нужно, чтобы они применялись и накапливались в том же кадровом буфере (вроде веб) движок рендеринга страниц). Я постоянно вижу, что все API-интерфейсы GCContext, связанные с изображениями, по-видимому, СОЗДАЮТ совершенно новое изображение всякий раз, когда вы хотите, чтобы оно отображалось на экране. Это звучит плохо, потому что это вызывает создание другой копии изображения.

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

Заранее спасибо!

1 Ответ

4 голосов
/ 13 октября 2010

Вы можете использовать CGLayer. Создайте его один раз с помощью CGLayerCreateWithContext(), а затем извлекайте контекст слоя с помощью CGLayerGetContext() всякий раз, когда вам нужно нарисовать его.

Чтобы нарисовать слой в другом графическом контексте, вызовите CGContextDrawLayerAtPoint() или CGContextDrawLayerInRect().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...