gpt4 book ai didi

ios - 如何使用多个 CGPoint Swift 2.0 添加单个平滑线

转载 作者:行者123 更新时间:2023-11-29 01:10:11 25 4
gpt4 key购买 nike

我有一个接受Array[CGPoint] 的函数,我正在尝试创建一个趋势。当我在每个点之后使用 moveToPoint() 函数时,我无法让它成为通过点数组的平滑线,我在背景中得到这条黑线。这是我的代码和输出图像:

class func drawLineThroughPoint(start : CGPoint, throughPoint through: [CGPoint], endPoint end:CGPoint, ofColor lineColor: UIColor, inView view:UIView) {

//design the path
let path = UIBezierPath()
path.moveToPoint(start)
for (_, point) in EnumerateSequence(through) {
path.addLineToPoint(point)
//path.moveToPoint(point) MARK: See image with moveToPoint
path.moveToPoint(point) //MARK: See image without moveToPoint
}
path.addLineToPoint(end)

//design path in layer
//design path in layer
let shapeLayer = CAShapeLayer()
shapeLayer.path = path.CGPath
shapeLayer.strokeColor = lineColor.CGColor
shapeLayer.shadowColor = lineColor.CGColor
shapeLayer.shadowOffset = CGSize(width: 0, height: 2)
shapeLayer.shadowOpacity = 0.95
shapeLayer.shadowRadius = 5
shapeLayer.fillColor = UIColor.clearColor().CGColor
shapeLayer.lineJoin = kCALineJoinRound
shapeLayer.lineCap = kCALineCapRound

shapeLayer.lineWidth = 10.0

view.layer.addSublayer(shapeLayer)
}

With path.moveToPoint()

Without path.moveToPoint()

Without path.moveToPoint()

With path.moveToPoint()

最佳答案

for 循环中没有 moveToPoint 是正确的方法。

如果您在 for 循环中使用 moveToPoint,则会为路径的每个部分创建一个新的线段,因此它看起来是断开连接的。

第一张图片中的“背景中的黑线”只是 CAShapeLayer 试图填充路径覆盖的区域。

您只需将 CAShapeLayerfillColor 设置为 clearColor 即可解决此问题。

shapeLayer.fillColor = UIColor.clearColor().CGColor

这给了我以下结果:

enter image description here

关于ios - 如何使用多个 CGPoint Swift 2.0 添加单个平滑线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35850394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com