Я хотел бы нарисовать объекты для двух отдельных CGLayers из той же петли for
, но я не уверен, как это сделать.Как нарисовать для нескольких CGLayers одновременно?
Например, я хотел бы нарисовать три оранжевых круга позади три синих круга, с оранжевыми кругами в одном слое и синие круги в другом. Следующий код будет поместить каждый круг на вершине предыдущего круга:
-(void) drawRect:(CGRect)rect {
UIBezierPath *circle;
for (int i = 1; i <= 3; i++) {
// Create an orange circle
circle = [UIBezierPath bezierPathWithOvalInRect:CGRectInset(CGRectMake(i*50, 80, 50, 50), 0, 0)];
circle.lineWidth = 4.0f;
[[UIColor colorWithRed:1.0 green:0.75 blue:0 alpha:1.0] setFill];
[[UIColor orangeColor] setStroke];
[circle stroke];
[circle fill];
// Create a blue circle
circle = [UIBezierPath bezierPathWithOvalInRect:CGRectInset(CGRectMake(25 + i*50, 80, 50, 50), 0, 0)];
circle.lineWidth = 4.0f;
[[UIColor colorWithRed:0 green:0.5 blue:1.0 alpha:1.0] setFill];
[[UIColor blueColor] setStroke];
[circle stroke];
[circle fill];
}
}
Как бы я изменить это так, чтобы три оранжевые круги будут в конечном итоге в orangeLayer
, который сидит за тремя синими кругами в blueLayer
? Я полагаю, что это имеет какое-то отношение к сохранению и восстановлению контекстов, но я не могу оборачивать вокруг себя.
Большое спасибо!
PS: Я понимаю, что могу просто нарисовать, используя две линии for
, чтобы добиться правильного эффекта, но этот пример предназначен для учебных целей, чтобы изучить слои. Благодаря!
любой прогресс @bob? – carantes