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)
}