2012-12-04 13 views

Antwort

9
- (void)drawRect:(CGRect)rect { 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGPathRef path = CGPathCreateWithRect(rect, NULL); 
    [[UIColor redColor] setFill]; 
    [[UIColor greenColor] setStroke]; 
    CGContextAddPath(context, path); 
    CGContextDrawPath(context, kCGPathFillStroke); 
    CGPathRelease(path); 
} 

Obwohl, kann ich nicht sagen, es ist nicht weniger ausführlicher als Hub & fill in getrennten Anrufe ...

+0

Hmm ... sehr wahr, ich gehe nur mit getrennten Anrufen Ich nehme an. Vielen Dank. – chinabuffet

-1

CGContextDrawPath macht es einmal, wenn Sie zuvor die Füll- und Strichfarbe festlegen.

CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextSetStrokeColor(context, a); 
CGContextSetFillColor(context, b); 
CGContextDrawPath(context, rect) 
+8

Hmm ... die Signatur von 'CGContextDrawPath' ich in der Header-Datei zu sehen ist:' CGContextDrawPath (CGContextRef c, CGPathDrawingMode Modus) ' – chinabuffet

6

Wenn Sie gerade suchen Linie um Platz zu sparen, können Sie definieren Ihre eigene Methode, um zwei Aufrufe durchzuführen und sie in eine Dienstprogrammklasse zu platzieren.

void strokeAndFill(CGContextRef c, CGRect rect) 
{ 
    CGContextFillRect(c, rect); 
    CGContextStrokeRect(c, rect); 
} 
Verwandte Themen