繁体   English   中英

画圆线iOS Swift

[英]draw rounded lines iOS Swift

我正在尝试制作绘制分形树的应用程序。 我设法制作了从所有行生成所有起点和终点的代码。 我也设法画出了线条,但现在它们真的很四四方方,希望它们具有圆角。 我使用UIView并使用UIBezierPaths在视图绘制函数中绘制线条。 为了检索点,我在sigleton类中有一个Branch对象数组。 分支对象除其他外还具有一个为tuples((x:Double,y:Double))的startingPoint和一个终点。

    override func draw(_ rect: CGRect) {
    super.draw(rect)
    UIColor.blue.setStroke()
    for branch in Tree.shared.branches{
        let path = UIBezierPath()
        print(branch.startingPoint)
        print(branch.endingPoint)
        path.move(to: CGPoint(x: branch.startingPoint.x, y: branch.startingPoint.y))
        path.addLine(to: CGPoint(x: branch.endingPoint.x, y: branch.endingPoint.y))
        path.lineWidth = 3
        path.stroke()
    }

}

我怎样才能使圆角变圆?

另外,如果有人知道一个免费的图书馆,对此我可能也很感兴趣。

编辑:我对如何生成树不感兴趣,我已经完成了这部分代码,需要画线。

关于某些视图的圆角,只需设置以下参数:

func adjustView(_ view: UIView){
     view.layer.borderWidth = 2.0
     view.layer.borderColor = UIColor.red
     view.layer.cornerRadius = 10
     view.clipsToBounds      = true
     view.backgroundColor = UIColor.white
    }

如果您希望获得更多信息,请查看有关图层属性的当前文档: https : //developer.apple.com/documentation/uikit/uiview/1622436-layer

您不需要库,只需要花一点时间来学习如何使用UIBezierPath绘制曲线,并且曲线是该类最UIBezierPath的事情之一。 绘制曲线的关键是了解控制点的工作方式。 这是我前段时间写的关于如何平滑连接曲线的答案 ,我认为这将有所帮助。 -addCurveToPoint:controlPoint1:controlPoint2:

如果您实际上并不想要曲线,而实际上只是希望圆角是圆的而不是尖的,那么您要做的就是将lineJoinStyle设置为kCGLineJoinRound

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM