У меня проблема с небольшой скоростью. При загрузке я генерирую CGMutablePath, содержащий не менее 1000 точек. Я хочу, чтобы прокрутить этот путь на экране, поэтому я использую этот вид кода:Оптимизация CGContext
-(void) drawRect:(CGRect)rect {
/*
Here, I have a timer calling drawRect 60 times per second.
There's also code for the scale and currentTime, based on
an MP3 playback (AVAudioPlayer);
*/
CGContextRef ref = UIGraphicsGetCurrentContext();
CGContextClearRect(ref, [self frame]);
CGContextSaveGState(ref);
CGContextTranslateCTM(ref, s.width/2+currentTime, 1);
CGContextScaleCTM(ref, scale, 1);
CGContextAddPath(ref, myGraphPath);
CGContextSetRGBFillColor(ref, .1, .1, .1, .8);
CGContextFillPath(ref);
CGContextRestoreGState(ref);
}
Проблема заключается в том, что это немного медленно, не очень много, но, как мне нужно, чтобы добавить гораздо больше графических code ... Мне было интересно, если устройство рисует весь путь (как только применяется масштаб, путь шириной около 10.000 пикселей), или только часть, видимая на экране? Что я могу сделать, чтобы оптимизировать это?
Я рад, что вы это поняли, но стоит отметить, что с CG можно многое сделать, чтобы оптимизировать его, чтобы работать так же хорошо, если не возможно лучше. – Sneakyness