Il codice sottostante crea graziosamente un rettangolo arrotondato definito da CGRect (rectRect).Impossibile tracciare il percorso dopo averlo riempito
Si riempie bene, ma non mi viene un ictus. Qualche idea per cui non riesco a vedere l'ictus?
-(void)drawRect:(CGRect)rect {
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextSetRGBFillColor(ctx, 0, 0, 0, 0.4);
CGContextSetRGBStrokeColor(ctx, 1, 1, 1, 1);
CGContextSetLineWidth(ctx, 4.0);
float fw, fh;
rect = rectRect;
float ovalWidth = 12;
float ovalHeight = 12;
if (ovalWidth == 0 || ovalHeight == 0) {
CGContextAddRect(ctx, rect);
return;
}
CGContextTranslateCTM (ctx, CGRectGetMinX(rect), CGRectGetMinY(rect));
CGContextScaleCTM (ctx, ovalWidth, ovalHeight);
fw = CGRectGetWidth (rect)/ovalWidth;
fh = CGRectGetHeight (rect)/ovalHeight;
CGContextMoveToPoint(ctx, fw, fh/2);
CGContextAddArcToPoint(ctx, fw, fh, fw/2, fh, 1);
CGContextAddArcToPoint(ctx, 0, fh, 0, fh/2, 1);
CGContextAddArcToPoint(ctx, 0, 0, fw/2, 0, 1);
CGContextAddArcToPoint(ctx, fw, 0, fw, fh/2, 1);
CGContextClosePath(ctx);
CGContextFillPath(ctx);
CGContextStrokePath(ctx);
}
Grazie. Questo è quello che stavo cercando. – Mrwolfy
Oh, a proposito, l'opzione UIBezierPath è la correzione ad alte prestazioni? Funziona perfettamente, naturalmente. O dovrei cercare altrove. – Mrwolfy
Non preoccuparti delle prestazioni fino a quando Strumenti ti dirà dove sono i colli di bottiglia. –