Когда у меня есть UIBezier, и я запускаю его в представлении с помощью drawRect, я вижу, что Безье является своего рода изменчивым, я имею в виду, что он действительно нигде не рисуется. Вместо этого это как будто было записано в своего рода буфер, который соответствует тому, что я вижу в этом представлении. Я имею в виду, что если я снова вызову drawRect с помощью [self setNeedsDisplay], безье исчезнет, и я смогу написать что-нибудь другое.
С другой стороны, если я нарисую лайк на CGContext, используя
CGContextStrokePath(ctx);
Я действительно пишу строку в этот контекст, и ее невозможно стереть, и если я снова вызову тот же метод, он будет писать поверх контекста, в котором уже есть одна линия.
Но что происходит, когда я использую команду UIBezier для записи в CGContext?
Я имею в виду, если я сделаю что-то вроде
UIGraphicsPushContext(ctx);
CGContextSaveGState(ctx);
CGContextTranslateCTM(ctx, 0, height);
CGContextScaleCTM(ctx, 1.0, -1.0);
[myBezier stroke];
CGContextRestoreGState(ctx);
UIGraphicsPopContext();
эта строка постоянно записывается в ctx или она изменчива, как и раньше? Документы не содержат никакой информации об этом и, как всегда, расплывчаты.
Благодарность