2013-08-10 13 views
7

Im disegnare alcune linee e ho notato che quando i bordi arrivare a un certo angolo che genera un bordo affilato come questo: pointy edgeUIBezierPath bordi arrotondati?

quello che voglio disegnare: round edge

Come posso fare questo? Ho esaminato le documentazioni ma non trovo nulla che io stia cercando. O c'è un modo per disattivare quella generazione automatica del bordo?

risposta

19

UIBezierPath ha una proprietà denominata lineJoinStyle. Impostalo su kCGLineJoinRound e disegnerà come desideri.

UIBezierPath *myPath = ... 
myPath.lineJoinStyle = kCGLineJoinRound; 
+0

haha ​​posso credere che ho perso xD grazie amico! – Arbitur

3

Utilizzare CGContextSetLineJoin per impostare il parametro di join del contesto di disegno su kCGLineJoinRound, prima di accarezzare il percorso. Questo è documentato nello Quartz 2D Programming Guide.

Se si disegna un UIBezierPath, è anche possibile impostare il percorso lineJoinStyle, che potrebbe essere più semplice.

2

proprietà kCGLineJoinRound su un'UIBezierPath può essere chiamato a Swift da:

myPath.lineJoinStyle = .round