似乎无法打印触摸阶段的字符串值,这已经尝试了:
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)")