나는 bezierPath를 UIView에서 신속하게 그릴 때. 나는 그것과 함께 직선을 얻는다. 곡선 만 있으면 직선을 제거 할 수 있습니다.bezierPath UIView에서 신속한 3, 곡선 만 필요합니다
I에 의해 회색으로 칠을 제거 할 수 있습니다 line.fillColor = UIColor.clear.cgColor
하지 내가 직선을 제거 할 수있는 방법을 잘
코드 :
let line = CAShapeLayer()
let linePath = UIBezierPath()
linePath.move(to: start)
linePath.addLine(to: end)
var dis = (end.x - start.x)/3.0
linePath.addCurve(to: start,
controlPoint1: CGPoint(x: start.x + dis, y: start.y + dis),
controlPoint2: CGPoint(x: end.x - dis, y: end.y - dis))
line.path = linePath.cgPath
line.strokeColor = UIColor.red.cgColor
//line.fillColor = UIColor.clear.cgColor
line.lineWidth = 4.0
line.opacity = 0.6
self.view.layer.addSublayer(line)
안녕 @Duncan, 내가 업데이트 한 코드를 UIView의에 추가하십시오. close를 제거한 후에도 여전히 직선을 그립니다. – user320478
코드에는 시작점에서 끝점까지 선을 그리는 명시적인 명령이 있습니다 :'linePath.addLine (to : end)'그리고 처음부터 끝까지. 'addLine' 명령을 제거하고, 끝점으로 먼저 이동 한 다음, 끝점에서 시작점까지 커브를 추가하거나 (커브의 시작 부분으로 이동 한 다음 'linePath.addCurve'를 다시 작성하십시오. 시작 지점에서 끝 지점까지 곡선을 추가하십시오.) –
완벽하게 작동했습니다! – user320478