Code: Select all
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
// set attributes
CGContextSetStrokeColorWithColor(context, [UIColor lightGrayColor].CGColor);
CGContextSetLineWidth(context, 1.f);
// create path
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddLines(path, NULL, points, N+1);
// stroke path
CGContextAddPath(context, path);
CGContextStrokePath(context);
// clean up
CGPathRelease(path);
}
< /code>
Ich habe versucht, den Pfad zuerst zu einem Offline -CGContext zu rendern, bevor ich ihn wie hier vorgeschlagen in die aktuelle Ebene hinzufügte, jedoch ohne positives Ergebnis. Ich habe auch direkt mit einem Ansatz zum Calayer herumgespielt, aber das hat auch keinen Unterschied gemacht. Oder funktioniert das Rendering einfach mehr für die CPU, die ich erkenne? Würde OpenGL einen Sinn/Unterschied machen? Dieser Beitrag hier gibt eine nette Erklärung, warum das nicht geholfen hat. Optimieren cgContextSetMenterLimit
Update Nr. 2: < /strong> Ich habe schließlich auf OpenGL umgestellt. Es war eine steile und frustrierende Lernkurve, aber der Leistungsschub ist einfach unglaublich. Die Anti-Aliasing-Algorithmen von Corgraphics leisten jedoch einen schöneren Job als das, was mit 4x-Multisampling in OpenGL erreicht werden kann.