获取触摸 UIView 的手指数量

Getting the number of fingers touching a UIView

我想根据当前触摸的次数更改 UIView 的颜色。我成功地通过一次触摸创建了这个:

class colorChangerViewClass: UIView {

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        setColor(color: .blue)
        print("touchesBegan")
    }

    override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
        setColor(color: .green)
        print("touchesEnded")
    }


    func setColor(color: UIColor) {
    self.backgroundColor = color
    }
}

但我正在努力实施多点触控。我觉得我不明白这里的东西。

UIView 是否有 属性 检查当前有多少手指触摸它?

我可以检查每次出现新的 touchesBegan 或 touchesEnded 时。

首先在您的子设备上启用多点触控class

self.isMultipleTouchEnabled = true

然后在触摸事件函数中,您可以从 UIView class.

获取所有触摸事件
let touchCount = event?.touches(for: self)?.count

确保UIViewisMultipleTouchEnabled = true,默认是false

然后改变touchesBegan方法

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        setColor(color: .blue)
        let touchCount = event?.touches(for: self)?.count
    }