2010-06-28 10 views
9

Ich entwickle eine Anwendung, in der ich gepunktete Linien zwischen ein paar Punkten zeichnen muss. Ich versuchteZeichnen Sie gepunktete Linien mit Quarz auf dem iPhone

CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound) 
CGContextSetLineDash(UIGraphicsGetCurrentContext(), 0, lengths, LENGTH_OF_ARRAY) 

Aber ich sehe gestrichelte Linien anstelle von gepunkteten Linien. Wie kann ich stattdessen gepunktete Linien bekommen?

+0

https://developer.apple.com/library/ios/# Dokumentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_paths/dq_paths.html – Jay

+0

Dies ist ein alter Beitrag, aber der obige Kommentar hilft nicht wirklich. Diese Verknüpfung gilt nicht für das Zeichnen von Punkten. –

+1

Sicher tut es. Es gibt einen ganzen Abschnitt über "Einen Pfad malen", in dem beschrieben wird, wie ein "Strichmuster" mit CGContextSetLineDash https://developer.apple.com/library/ios/#documentation/GraphicsImaging/Reference/CGContext/Reference/reference gezeichnet wird .html # // Apple_ref/doc/c_ref/CGContextSetLineDash – pinkeerach

Antwort

11
CGContextRef context = UIGraphicsGetCurrentContext(); 
CGFloat lengths[2]; 
lengths[0] = 0; 
lengths[1] = dotRadius * 2; 
CGContextSetLineCap(context, kCGLineCapRound); 
CGContextSetLineWidth(context, dotRadius); 
CGContextSetLineDash(context, 0.0f, lengths, 2); 

// CGContextAddEllipseInRect(context, self.bounds); 

Dieser Code sollte korrekt funktionieren.

0

Bitte beachten Sie die folgende große Seite über die Rollen der Linieneigenschaften! https://horseshoe7.wordpress.com/2014/07/16/core-graphics-line-drawing-explained/

Nach der oben genannten Seite, hier ist der Code für die 'Punkt' Zeile wie (....)

// should 
CGContextSetLineCap(context, kCGLineCapRound); 

// please see the role of line properties why the first should be 0 and the second should be the doulbe of the given line width 
CGFloat dash[] = {0, lineWidth*2}; 

// the second value (0) means the span between sets of dot patterns defined by dash array 
CGContextSetLineDash(context, 0, dash, 2); 
Verwandte Themen