ios - 绘制圆线iOS Swift

标签 ios swift xcode uiview

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

    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()
    }

}

我怎样才能使角落变圆?

此外,如果有人知道可以促进这一点的免费图书馆,我也很感兴趣。

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

最佳答案

你不需要图书馆,你只需要花一点时间学习如何用 UIBezierPath 绘制曲线,而曲线是该类(class)最擅长的事情之一。绘制曲线的关键是了解控制点的工作原理。 Here's an answer我前段时间写了关于如何平滑连接曲线的文章,我认为这会有所帮助。玩弄 -addCurveToPoint:controlPoint1:controlPoint2: .

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

关于ios - 绘制圆线iOS Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54754201/

相关文章:

ios - CloudFront 和 S3 的端点问题

ios - UIDatePicker 设置为 15 分钟间隔,但如果用户不滚动,则日期不在 15 分钟间隔内

JavaScript 函数在 iOS 中不起作用

ios - XCode 6 中的滑动手势 StoryBoard 对象不起作用

swift - 在范围内使用未解析的标识符

ios - 如何在布局中设置填充宽度和自定义高度

iOS 应用程序数据库选项

ios - 如何停止tableviewcell按钮上的动画?

objective-c - clang 3 中不再需要消息和函数原型(prototype)了吗?

objective-c - 开始出现 objective-c 代码错误?怎么了?