首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >接近传感器在第一次使用后无法正常工作

接近传感器在第一次使用后无法正常工作
EN

Stack Overflow用户
提问于 2017-07-09 22:37:45
回答 1查看 612关注 0票数 1

我正在用SpriteKit构建一个需要使用接近感应器的游戏。我有一个滑动手势,当接近感应器感应到什么东西时,它就会打开接近感应器。我的问题是,当我第一次滑动并将手放在传感器上时,功能运行了,一切都运行正常。当我第二次滑动并将手放在传感器上时,屏幕就会变黑,当我把手从接近传感器移开时,它就会运行功能,一切都会正常工作。我希望当我把手放在传感器上而不是拿开我的手时,它会激活并运行该功能。有没有人知道我该怎么解决这个问题?

接近传感器代码:

代码语言:javascript
复制
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)

    }
}

刷卡功能:

代码语言:javascript
复制
func swipe() {
    print("swipe detected")
    setProximitySensorEnabled(true)
}
EN

回答 1

Stack Overflow用户

发布于 2017-10-06 17:18:46

在我的例子中,我发现在添加观察者之后,我的项目中的某个地方设置了UIDevice.current.isProximityMonitoringEnabled = false。选择器方法将不会收到任何通知。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44997548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档