2016-05-29 21 views
1

Zeichnung gestrichelte Linie Pfad so sehr einfach istiOS CG gestrichelte Linie Weg

enter image description here

CGFloat lengths[] = { 12.0, 4.0, 12.0, 4.0, 4.0, 4.0 }; 
CGContextSetLineDash(ctx, 0, lengths, 6); 
//... path code: moveTo, lineTo, strokePath 

möglich ist komplizierter gestrichelte Linie zu ziehen? Beispiel:

enter image description here

Antwort

3

Sie einen Pfad mit sechs Längen erstellt haben. Erstellen Sie eine andere mit 8 bis nur die Endpunkte dieser breiteren Segmente darstellen:

CGFloat lengths[] = { 12.0,   4.0, 12.0,   4.0, 4.0, 4.0 }; 
CGFloat lengths2[] = { 3.0, 6.0, 3.0, 4.0, 3.0, 6.0, 3.0, 12.0 }; 

So, Schlaganfall dem Weg zweimal, einmal mit einer schmalen Linie mit CGContextSetLineDash von lengths Breite und dann wieder, ein zweites Mal, mit einem dickeren Linienbreite mit CGContextSetLineDash von lengths2. Zum Beispiel dieses zweiten mit einer größeren Linienbreite in rot zeichnen, sieht es so aus:

enter image description here

Wenn Sie beide in schwarz zeichnen, es sieht aus wie:

enter image description here

Tweak der Werte, wie Sie für richtig halten, aber stellen Sie sicher, dass die Summe aller lengths für beide auf den gleichen Wert summiert und so die überstrichenen Teile von lengths2 mit dem Anfang und Ende der Segmente in lengths ausgerichtet sind.

+0

so einfach :) thx, Rob – theWalker