如何在imageView上绘制动态线路径?

时间:2019-03-27 20:56:33

标签: swift swift3 uibezierpath

我想在“图像”视图上画一条线,示例如下-

enter image description here

在imageView中我有一条从A到F的路径。

如果我选择A,然后D-路径将生成像绿线,如果我选择A和F-路径将生成像红线。

如何在图像视图上执行此操作?

所有点(A,B,C,D,E和F)都是UIButton

1 个答案:

答案 0 :(得分:0)

首先,我必须说您的问题不是很清楚,我花了一段时间才弄清楚您真正想要实现的目标。我希望我能正确理解。无需简单地输入所需的实际代码,这就是我的处理方式:

我将创建一个包含字典的数组,字典包含字母作为键,点作为值,如下所示:

[
["A": CGPoint(x: 0, y: 0)],
["B": CGPoint(x: 0, y: 0)],
["C": CGPoint(x: 0, y: 0)],
["D": CGPoint(x: 0, y: 0)],
["E": CGPoint(x: 0, y: 0)],
["F": CGPoint(x: 0, y: 0)],
]

(或更妙的是,此数组可以具有包含相似信息的自定义模型)

然后,使用此数组在视图上绘制UIButton,通过将其子类化(例如字典的键)为每个UIButton提供对该数组中项目的引用。

CustomButton: UIButton { 
    var key: String?
}

然后,当点击第一个按钮时,将该键存储在名为start的局部变量中,而当点击第二个按钮时,将该键存储在名为end的局部变量中。随后,遍历数组并找到匹配的start键,并使用数组中的值绘制线条,直到找到匹配的end键。

由于我很忙,所以我创建了一个简单的游乐场演示,但这通常不是它的工作方式。您不仅要索取示例代码,还求助于解决问题。

无论如何,您可以在此处找到该演示:https://gist.github.com/pvroosendaal/f1617fe7e164bc94f0d37d3175252e2f

顺便说一下,这是迄今为止我编写的最糟糕的代码,但是它可以满足您的要求。

我希望这是有道理的,否则,请告诉我。