Sono il nuovo in Core Graphics e cerco di disegnare cerchi. Possono essere trasparenti (solo il tratto) e riempiti con il colore del tratto. Quindi il metodo è simile al seguente:Core graphics images bassa qualità
+ (UIImage *)iconImageWithColor: (UIColor *)markColor strokeOnly:(BOOL)strokeOnly
{
CGRect rect = CGRectMake(0.0f, 0.0f, 20.0f, 20.0f);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGPathRef clippingPath = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:7.5f].CGPath;
CGContextAddPath(context, clippingPath);
CGContextClip(context);
CGContextSetFillColorWithColor(context, strokeOnly == YES ? [[UIColor clearColor] CGColor] : [markColor CGColor]);
CGContextFillRect(context, rect);
CGPathRef path = CGPathCreateWithRoundedRect(rect, 10.f, 10.f, NULL);
[markColor setStroke];
CGContextAddPath(context, path);
CGContextDrawPath(context, kCGPathFillStroke);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
Il risultato è strano: sembra che la risoluzione dell'immagine sia molto bassa. È possibile rendere l'immagine del risultato bella sul display retina?
Aggiungi questa riga prima di disegnare rect: CGContextSetLineWidth (context, 1.0); È possibile aggiornare 1.0 secondo le proprie esigenze. La sua larghezza della linea di trazione. – Mrunal