似乎无法打印触摸阶段的字符串值,这已经尝试了:

let phase = NSTouch.Phase(rawValue: touch.phase.rawValue)
print(phase)

let touches = event.touches(matching: NSTouch.Phase.ended, in: self.view)
touches.forEach { (touch) in
   print("🖖🏼 touch up \(touch.phase)")
}


我得到的输出是这个

Phase(rawValue: 8)
🖖🏼﹣ touch up Phase(rawValue: 8)

最佳答案

解决它的方法不是很漂亮:

print("Began", String(describing: NSTouch.Phase.began))
print("Ended", String(describing: NSTouch.Phase.ended))
print("Moved", String(describing: NSTouch.Phase.moved))
print("Stationary", String(describing: NSTouch.Phase.stationary))
print("Touching", String(describing: NSTouch.Phase.touching))
print("Cancelled", String(describing: NSTouch.Phase.cancelled))


结果有助于产生此结果:

let phases = [
            "1":"Began",
            "2":"Moved",
            "4":"Stationary",
            "7":"Touching",
            "8":"Ending",
            "16":"Cancelled"
]

let phase = phases["\(touch.phase.rawValue)"]
print("🖖 Finger touch down \(phase)")

10-06 05:54