我有一个以这种方式创建的 UIView 子类:
class UpperView : UIView{
var currentColor : UIColor = .white
private var lineArray: [[CGPoint]] = [[CGPoint]]()
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
guard let touch = touches.first else { return }
let firstPoint = touch.location(in: self)
lineArray.append([CGPoint]())
lineArray[lineArray.count - 1].append(firstPoint)
}
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
guard let touch = touches.first else { return }
let currentPoint = touch.location(in: self)
lineArray[lineArray.count - 1].append(currentPoint)
setNeedsDisplay()
}
}
我想阻止这个UIView接收事件,所以上网搜索发现可以设置isUserInteractionEnabled = false
使用这种方法,视图不会收到任何事件,它的所有子视图也是如此。
这就是问题所在,如何防止视图接收任何触摸事件,同时仍允许其子视图接收它们?