5

Я использую UIBezierPath, чтобы нарисовать кривую линию. Однако кривая работает, я не могу кривых границ линии.UIBezierPath - Добавить закругленный угол

enter image description here

Если вы посмотрите на верхний/нижний конец кривой, вы можете увидеть, что края выровнялась, то не то, что я хочу. Есть ли способ кривых краев?

Я использую простой UIBezierPath, чтобы нарисовать (почти) полукруг. Это создает форму изогнутой линии, что я хочу:

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]; 

Несмотря установки cornerRadius свойства, углы не изогнуты. Что я делаю не так?

Спасибо за ваше время, Дэн.

ответ

7

Включите следующее.

circle.lineCap = kCALineJoinRound; 

Для Swift 3,0

circle.lineCapStyle = .Round; 
+0

Это работает отлично, спасибо! – Supertecnoboff

1

Swift 4,0

circle.lineCap = kCALineCapRound 

, и если вы хотите, чтобы ваши линии пересечения также округляется набор

circle.lineJoin = kCALineCapRound 

.