[enter]这里有一个非闭合结构的贝塞尔路径。我只想在点击路径时检测点击,而不是在路径所包围的区域上点击。如果我使用path.contains,即使是由路径包围的点击,也会给予我真实性。如何检测内部打开的开关(不关闭)BezierPath在迅速
bezier.contains(touchPoint)
[路径图像]:https://i.stack.imgur.com/fRmya.png具有使用以下代码创建的灰色路径,我想仅检测,而不是由灰色部分所包围的区域内关于灰色的部分的点击次数。
let color:UIColor = getColor(structure.category)
let bpath:UIBezierPath = UIBezierPath()
beziers.append(bpath);
bpath.move(to: structure.points[0].fromPoint)
for point in structure.points {
bpath.addCurve(to: point.toPoint, controlPoint1:point.controlPointOne, controlPoint2: point.controlPointTwo)
}
bpath.lineWidth = 5.0
color.set()
bpath.stroke()
当我意识到自己根本无法理解你所说的问题时,我正要回答一些问题。一个* unclosed *路径如何检测路径中包含的* tap *?任何机会,你可以使用更多的代码?如果你愿意,我可以帮你。 – dfd
编辑上面的问题 –
该路径看起来足以创建一个CAShapeLayer(同时具有笔划和填充)。如果你这样做,你可以运行一个* hitTest()*。是的,路径太小以至于胖手指(30-44点)将检测到水龙头,但我认为这是最适合水龙头检测的这种形状。 – dfd