1
我正在用SpriteKit构建一款需要使用接近传感器的游戏。当接近传感器感应到它关闭时,我有一个滑动手势可以打开接近感应。我的问题是,我第一次刷手,把手放在传感器上,功能运行,一切正常。第二次,当我将手从接近传感器上移开时,我将手滑过传感器,屏幕变黑,然后运行该功能,一切正常。当我将手放在传感器上而不是当我移开手时,我希望它激活并运行该功能。有没有人不能如何解决这个问题?第一次使用后接近传感器无法正常工作
接近传感器代码:
func setProximitySensorEnabled(_ enabled: Bool) {
let device = UIDevice.current
device.isProximityMonitoringEnabled = enabled
if device.isProximityMonitoringEnabled == true {
NotificationCenter.default.addObserver(self, selector: #selector(proximityChanged), name: .UIDeviceProximityStateDidChange, object: device)
print("added observer!!!")
} else {
NotificationCenter.default.removeObserver(self, name: .UIDeviceProximityStateDidChange, object: nil)
print("removed observer!!!")
}
}
func proximityChanged(_ notification: Notification) {
if let device = notification.object as? UIDevice {
print("\(device) detected!")
print("An object is near!!")
vibrate()
setProximitySensorEnabled(false)
}
}
刷卡功能:
func swipe() {
print("swipe detected")
setProximitySensorEnabled(true)
}