Технические вопросы и ответы QA1045

Неожиданные изменения состояния CG

Q: Почему делает мою Базовую Графику, получающую изменение состояния неожиданно?

A: Если Вы используете какую-либо из функций удобства, таких как CGContextStrokeRectWithWidth, знают, что они используют переменные состояния и не восстанавливают их. CGContextStrokeRectWithWidth, например, очищает текущий путь и изменяет ширину строки.

Если Вы хотите сохранить текущие настройки, используйте CGContextSaveGState и CGContextRestoreGState. Обратите внимание на то, что даже этот APIs не сохраняет путь. Единственный способ восстановить путь состоит в том, чтобы воссоздать его или использовать CGContextCopyPath (контекст CGContextRef) для создания копии текущего пути, поскольку возражает CGPathRef.



История версии документа


ДатаПримечания
13.08.2013

Обновленное форматирование.

02.07.2001

Новый документ, объясняющий, почему Базовое состояние рисования Графики иногда не изменяется ни по какой очевидной причине.