我有一个在我的视图中有可见CAShapeLayer
的对象列表。
internal class Line {
var layer = CAShapeLayer()
}
这些显示在UIView
类型的对象上。在UIView
我有一个longPress手势识别器,可以检测到其中一个line.layers的长按。
这就是我得到的
@objc private func didLongPress(_ sender: UILongPressGestureRecognizer) {
var selectedLine: Line?
let touchPoint = sender.location(in: self)
if sender.state == .began {
for line in lines {
if line.layer.contains(touchPoint) == true {
print("true")
} else {
print("false")
}
}
} else if sender.state == .changed {
for line in lines {
if line.layer.contains(touchPoint) == true {
print("true")
} else {
print("false")
}
}
} else if sender.state == .ended {
for line in lines {
if line.layer.contains(touchPoint) == true {
print("true")
} else {
print("false")
}
}
}
}
毋庸置疑,它只会打印错误。有谁有想法吗?
谢谢!
答案 0 :(得分:0)
找到解决方案:
line.layer.path?.boundingBox.contains(touchPoint)