Я хочу сохранить предыдущий рисунок в drawRect (система очищает его каждый раз), и кажется, что путь к использованию - использовать контекст растрового изображения и, , это работает, за исключением того, что теперь мой цвет ушел, оставив только черный и белый.мой цветной растровый рисунок только черно-белый в drawRect (iPhone)
Вот мой "статический" контекст
-(id)initWithCoder:(NSCoder *)aDecoder {
...
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
contextRef = CGBitmapContextCreate(NULL,
320,
640,
8,
320*4,
colorSpace,
kCGImageAlphaPremultipliedLast);
...
}
и вот моя замена контекст:
-(void)drawRect:(CGRect)rect {
myDrawRoutine();
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextDrawImage(context, rect, CGBitmapContextCreateImage(contextRef));
}
И это кишок Жеребьевка рутинных по:
...
// CGContextRef context = UIGraphicsGetCurrentContext();
CGContextRef context = contextRef;
if(!(context))
return;
CGContextSetFillColor(context, CGColorGetComponents([co CGColor]));
CGContextSetStrokeColor(context, CGColorGetComponents([co CGColor]));
CGContextFillEllipseInRect(context, CGRectMake((*i)->x,
(*i)->y,
(*i)->diam,
(*i)->diam));
...
}
Для такой настройки CGLayer лучше подходит для кеширования ваших товарищей, чем для CGBitmapContext. – tonklon