Как получить доступ к CGContext для создания CGLayer вне экрана - PullRequest
3 голосов
/ 26 декабря 2011

Намерение: создание CGLayer за кадром, нарисуйте на нем некоторые сложные вещи из второго потока и используйте его позже для быстрого рисования в главном потоке

Проблема: CGLayerCreateWithContext(context, size, info) ожидает уже существующий CGContext, чтобы он знал, для какого контекста его необходимо оптимизировать.

Решение, которое я нашел до сих пор: CGContextRef ctx = UIGraphicSetCurrentContext(), но эта функция некажется, больше не существует.

Вопрос: Нет ли другого способа получить доступ к чему-то вроде контекста по умолчанию ?Или мне действительно нужно дождаться первого drawRect: вызова только для доступа к UIGraphicsGetCurrentContext() и создания всех CGLayers из основного потока за один потраченный прогон чертежа?

1 Ответ

1 голос
/ 27 декабря 2011

вы можете создать контекст изображения, выполнив что-то вроде:

UIGraphicsBeginImageContext(rect);
    // your drawing code
UIGraphicsEndImageContext();

с учетом сказанного, я не уверен, что вы можете сделать это из потока, отличного от main. Хотя стоит попробовать.

...