2012-03-30 9 views
6

Ich versuche, einen Halbkreis mit Core Graphics zu zeichnen und es mit etwas Farbe zu füllen. Ich möchte Farbe mit Bild durch Verwendung von CALayer ersetzen. Kann jemand helfen, wie man das macht Danke!Wie kann ich einen Halbkreis zeichnen mit CoreGraphics

Code geht hier.

CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextSetLineWidth(context, 2); 
CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor); 
CGContextMoveToPoint(context, 0, 500); 
CGContextAddArc(context, 60, 500, 50, 90, 180, 0); 
CGContextStrokePath(context); 
+1

Dieser Link kann Ihnen helfen: http://stackoverflow.com/questions/3729690/draw-part- von einem Kreis und auch überprüfen: http://stackoverflow.com/questions/2835448/how-to-draw-a-rounded-rectangle-in-core-graphics-quartz-2d – Devang

Antwort

7

Sie müssen die Winkel in radians, nicht Grad angeben. 180 Grad = π Radianten. Also in Ihrem Beispiel:

CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextSetLineWidth(context, 2); 
CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor); 
CGContextMoveToPoint(context, 10, 500); 
CGContextAddArc(context, 60, 500, 50, M_PI/2, M_PI, 0); 
CGContextStrokePath(context); 

Bitte beachte, dass ich auch den Ausgangspunkt bewegt (... MoveToPoint) 10 Pixel nach rechts, weil das ist, wo der Bogen beginnt.

-2

Was Sie brauchen, was ich neulich gefunden habe, ist ein großartiges Werkzeug, mit dem Sie Core Graphics Code visualisieren können - nachdem Sie es in ein Grafikprogramm gezeichnet haben.

Es heißt Paint Code.

PaintCode

+0

Kann Piantcode verwendet werden, um benutzerdefinierte erstellen Kontrollen. Angenommen, ich möchte einen gefüllten Bogen mit einem Text in der Mitte des Bogens zeichnen, den ich zur Laufzeit ändern möchte. Effektiv eine neue Art von Kontrolle. Kann PaintCode das tun? Nicht sehr offensichtlich durch den Blick auf ihre Website? – OneGuyInDc

+0

Installieren Sie es (die Demo) und sehen Sie. Ich weiß es nicht. – bandejapaisa

5

den Antworten arbeiten nicht auf iOS 7 für mich!
Ich habe eine kleine Kategorie erstellt, um einen Kreis mit dem Winkel eines Prozentsatzes zu erstellen. Vielleicht willst du es ausprobieren.
Sie können die Methode dennoch übernehmen, wenn Sie nur einen Halbkreis erstellen möchten. Hier
ist: GitHub Link
Und das ist es, was seine wie folgt aussehen:

persentage circle

+0

Tolle Arbeit !!! ... –

+0

Text wird nicht in den Ergebnissen angezeigt. Ich dachte, du hättest den Text nicht im Bildkontext hinzugefügt, oder? –

0
CGPoint circleCenter = CGPointMake(self.bounds.size.width/2, self.bounds.size.height/2); 

CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextSetLineWidth(context, 2); 
CGContextMoveToPoint(context, circleCenter.x, circleCenter.y); 


CGContextAddArc(context, circleCenter.x, circleCenter.y, 50, 90, 180, 0); 
CGContextAddLineToPoint(context, circleCenter.x, circleCenter.y); 
CGContextSetFillColorWithColor(context, [UIColor colorWithPatternImage:[UIImage imageNamed:@"add-icon.png"]].CGColor); 
CGContextFillPath(context); 

CGContextAddArc(context, circleCenter.x, circleCenter.y, 50, 180, 90, 0); 
CGContextAddLineToPoint(context, circleCenter.x, circleCenter.y); 
CGContextSetFillColorWithColor(context, [UIColor colorWithPatternImage:[UIImage imageNamed:@"appIcon_58.png"]].CGColor); 
CGContextFillPath(context); 
Verwandte Themen