iOS - Можно ли использовать UIGraphicsGetCurrentContext вне drawRect?

Я хочу динамически изменить текущий CGContextRef в соответствии с различными действиями пользователя? Возможно ли это или его модификация возможна только в пределах drawRect: из экземпляра представления? Что происходит, когда я звоню UIGraphicsGetCurrentContext() вне drawRect: и есть ли какие-либо ограничения в этом, рекомендуется ли это? Любые возможные последствия, которые я должен рассмотреть?

1 ответ

Решение

Согласно документации графический контекст устанавливается только перед вызовом этой функции. Это означает, что если эта функция не вызывается, она не будет установлена, и если вы не заставите систему вызывать ее снова (никогда не делайте это самостоятельно по этой причине), ее тоже не будет.

Используйте одну из этих функций, чтобы вернуть представление в drawRect:

setNeedsDisplay:
setNeedsDisplayInRect:

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

Другие вопросы по тегам