0

我有一个以这种方式创建的 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

使用这种方法,视图不会收到任何事件,它的所有子视图也是如此。

这就是问题所在,如何防止视图接收任何触摸事件,同时仍允许其子视图接收它们?

4

0 回答 0