UIBezierPath - 添加圆角

问题描述 投票:0回答:2

我正在使用

UIBezierPath
来绘制一条曲线。然而,曲线有效,我无法弯曲线的边缘。

如果您查看曲线的顶部/底部,您可以看到边缘变平,这不是我想要的。有没有办法让边缘弯曲?

我正在使用一个简单的

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
属性,但角不是弯曲的。我做错了什么?

ios objective-c uibezierpath rounded-corners cashapelayer
2个回答
12
投票

包括以下内容。

circle.lineCap = kCALineJoinRound;

适用于 Swift 3.0 及以上版本

circle.lineCapStyle = .Round;

1
投票

斯威夫特4.0

circle.lineCap = kCALineCapRound

如果您希望线条交叉点也被圆角设置

circle.lineJoin = kCALineCapRound

还有。

© www.soinside.com 2019 - 2024. All rights reserved.