【发布时间】:2019-03-27 20:56:32
【问题描述】:
我想在图像视图上画一条线,示例如下-
我在 imageView 中有一条从 A 到 F 的路径。
如果我选择 A 然后 D-Path 将像绿线一样生成,如果我选择 A 和 F-Path 将像红线一样生成。
如何在图像视图上执行此操作?
所有点(A,B,C,D,E & F) 都是 UIButton
【问题讨论】:
标签: swift swift3 uibezierpath
我想在图像视图上画一条线,示例如下-
我在 imageView 中有一条从 A 到 F 的路径。
如果我选择 A 然后 D-Path 将像绿线一样生成,如果我选择 A 和 F-Path 将像红线一样生成。
如何在图像视图上执行此操作?
所有点(A,B,C,D,E & F) 都是 UIButton
【问题讨论】:
标签: swift swift3 uibezierpath
首先我必须说你的问题不是很清楚,我花了一段时间才弄清楚你真正想要实现的目标。我希望我理解正确。无需简单地输入您需要的实际代码,这就是我的处理方式:
我会创建一个包含字典的数组,其中包含作为键的字母和作为值的点,看起来像这样:
[
["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)],
]
(或者更好,这个数组可以有包含类似信息的自定义模型)
然后,使用这个数组在视图上绘制 UIButtons,通过子类化每个 UIButton 为数组中的项目提供一个引用,例如字典的键。
CustomButton: UIButton {
var key: String?
}
然后,当点击第一个按钮时,将该键存储在名为 start 的局部变量中,并在点击第二个按钮时将该键存储在名为 end 的局部变量中。随后,遍历数组并找到匹配的start 键,并使用数组中的值绘制线条,直到找到匹配的end 键。
因为我有心情,所以我创建了一个简单的游乐场演示,但这通常不是它的工作方式。您不仅要求提供示例代码,还要求帮助解决问题。
无论如何,你可以在这里找到演示:https://gist.github.com/pvroosendaal/f1617fe7e164bc94f0d37d3175252e2f
顺便说一句,这是迄今为止我编写的最糟糕的代码,但它可以满足您的需求。
我希望这是有道理的,否则,请告诉我。
【讨论】: