Я пытаюсь понять Quartz и получить контекст, который вам нужно использовать. Если у меня есть функция, в которой я создаю контекст, но затем я вызываю другую функцию для какого-то другого рисунка в том же контексте, нужно ли мне передавать контекст из первого метода в следующий? Или я могу просто использовать UIGraphicsGetCurrentContext()
для любых методов компьютерной графики, которым требуется контекст, поскольку я все еще рисую в том же контексте?
Понимание UIGraphicsGetCurrentContext()
Ответы (1)
В документах для UIGraphicsGetCurrentContext() говорится:
Текущий графический контекст по умолчанию равен нулю. Перед вызовом метода drawRect: объекты представления помещают допустимый контекст в стек, делая его текущим. Однако, если вы не используете объект UIView для рисования, вы должны поместить действительный контекст в стек вручную, используя функцию
UIGraphicsPushContext(_:)
.
Таким образом, после вызова UIGraphicsPushContext()
с созданным вами контекстом другие ваши методы могут получить доступ к этому контексту с помощью UIGraphicsGetCurrentContext()
. Если вы вызываете UIGraphicsGetCurrentContext()
вне drawRect: и не устанавливаете контекст явно с помощью UIGraphicsPushContext()
, текущий графический контекст не определен и, конечно, небезопасен для использования.