У меня небольшая проблема со скоростью бега. При загрузке я генерирую CGMutablePath, содержащий не менее 1000 точек. Я хочу прокрутить этот путь на экране, поэтому я использую такой код:
-(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);
}
Проблема в том, что это немного медленно, но не очень, но мне нужно добавить намного больше графического кода ...
Мне было интересно, рисует ли устройство весь путь (после применения масштаба, путь составляет около 10.000 пикселей в ширину) или только часть, видимая на экране? Что я могу сделать, чтобы оптимизировать это?