Tho*_*hor 10 iphone ios core-motion swift
我已经看到两种使用CoreMotion框架描述不同设备方向的下降对象行为的方法.我已经在代码中尝试了两个版本,它们似乎都表现得像我期望的那样,即无论设备方向如何都会向地球坠落.
我只是好奇为什么两个版本的行为相同,即使对于第一个版本,x和y方向的加速度,即dx和dy,是横向切换?
1)
if var dx = data?.acceleration.x, var dy = data?.acceleration.y {
switch UIDevice.currentDevice().orientation {
case .Portrait:
dy = -dy
case .PortraitUpsideDown:
break
case .LandscapeRight:
swap(&dx, &dy)
case .LandscapeLeft:
swap(&dx, &dy)
dy = -dy
default:
dx = 0
dy = 0
}
gravity.gravityDirection = CGVector(dx: dx, dy: dy)
}
Run Code Online (Sandbox Code Playgroud)
2)
if var dx = data?.acceleration.x, var dy = data?.acceleration.y {
switch UIDevice.currentDevice().orientation {
case .Portrait:
dy = -dy
case .PortraitUpsideDown:
break
case .LandscapeRight:
break
case .LandscapeLeft:
break
default:
dx = 0
dy = 0
}
gravity.gravityDirection = CGVector(dx: dx, dy: dy)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
148 次 |
| 最近记录: |