Frage

Ich entwickle eine Anwendung, in der ich brauche zwischen ein paar Punkten gepunktete Linien zu zeichnen. Ich habe versucht,

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

Aber ich sehe gestrichelte Linien statt gepunkteten Linien. Wie kann ich gepunktete Linien bekommen statt?

War es hilfreich?

Lösung

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.

Andere Tipps

Bitte finden Sie in der folgenden großen Seite über die Rollen von Linieneigenschaften! https://horseshoe7.wordpress.com/2014/ 16.07 / Kern-Grafik-line-Zeichnung erläuterte /

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);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top