通过启动App,Coremotion和iPhone定位

时间:2018-03-28 19:07:18

标签: swift orientation core-motion

我正在使用Coremotion和Swift开发一个应用程序,仅用于横向模式。我有加速度计(Coremotion的一部分)工作。但是当我的iPhone方向是纵向时,加速度计此刻处于活动状态。

当我以纵向模式启动应用程序时,无法停止加速度计。因为该应用程序仅针对横向设计,因此无法在纵向模式下进行测试(Swift Things de iPhone始终处于横向模式)。

当iPhone仅处于横向模式时,有人可以通过启动应用程序告诉我如何使加速度计仅处于活动状态吗? 这里有一些代码:

viewdDidLoad:  
if(motionManager.isDeviceMotionAvailable){
    motionManager.startDeviceMotionUpdates();
    motionManager.deviceMotionUpdateInterval = 1.0/60.0;
} 
motionManager.startAccelerometerUpdates()

func renderer(_ renderer: SCNSceneRenderer, updateAtTime time:     TimeInterval):
if let rot = motionManager.deviceMotion?.attitude{
           cameraNode.eulerAngles = SCNVector3Make(Float(rot.roll +  
 M_PI/2), -Float(rot.yaw), -Float(rot.pitch))

1 个答案:

答案 0 :(得分:0)

  

编辑:确保已完成此操作。见下图。

enter image description here

尝试:

viewDidAppear() {
    super.viewDidAppear()
    if UIDevice.current.orientation == UIDeviceOrientation.landscapeLeft ||  UIDevice.current.orientation == UIDeviceOrientation.landscapeRight  {
        if(motionManager.isDeviceMotionAvailable){
            motionManager.startDeviceMotionUpdates();
            motionManager.deviceMotionUpdateInterval = 1.0/60.0;
        } 
        motionManager.startAccelerometerUpdates()
    } // else you could do a notification on orientation left/right
}