2017-02-14 43 views
5

Używam UIBezierPath do rysowania zakrzywionej linii. Krzywa działa jednak, nie jestem w stanie zakrzywić krawędzi linii.UIBezierPath - Dodaj zaokrąglony róg

enter image description here

Jeśli spojrzeć na górnej/dolnej końcu krzywej, można zobaczyć, że krawędzie są spłaszczone, to jest nie to, co chcę. Czy istnieje sposób na zakrzywienie krawędzi?

Używam prostego UIBezierPath, aby narysować (prawie) półkole. Stwarza to linia krzywa kształt, który chcę:

CAShapeLayer *circle = [CAShapeLayer layer]; 
circle.path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(0, 0) radius:70 startAngle:1.0472 endAngle:5.23599 clockwise:NO].CGPath; 
circle.fillColor = [UIColor clearColor].CGColor; 
circle.strokeColor = [UIColor colorWithWhite:1.0 alpha:0.2].CGColor; 
circle.lineWidth = 18.0; 
circle.cornerRadius = 10.0; 
circle.position = CGPointMake(100, 100); 
circle.anchorPoint = CGPointMake(0.5, 0.5); 
[mainView.layer addSublayer:circle]; 

Pomimo ustawienie właściwości cornerRadius, rogi nie są zakrzywione. Co ja robię źle?

Dziękuję za poświęcony czas, Dan.

Odpowiedz

7

Dołącz następujące elementy.

circle.lineCap = kCALineJoinRound; 

Dla Swift 3,0

circle.lineCapStyle = .Round; 
+0

To działa idealnie, dzięki! – Supertecnoboff

1

Swift 4.0

circle.lineCap = kCALineCapRound 

i jeśli chcesz, aby linie przecięcia również być zaokrąglone ustawić

circle.lineJoin = kCALineCapRound 

również.