ios – 无论设备方向如何,物体落在地球上

前端之家收集整理的这篇文章主要介绍了ios – 无论设备方向如何,物体落在地球上前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
使用CoreMotion框架,我已经看到了两种方式来描述不同设备方向的落后对象行为.我已经在代码中尝试过这两个版本,它们似乎都像我期望的一样,即不论设备方向如何,都落在地球上.我只是好奇为什么两个版本的行为都一样,即使在第一个版本中,x和y方向的加速度,即dx和dy,是以横向切换的?

提前感谢任何建议或帮助!

1)

  1. if var dx = data?.acceleration.x,var dy = data?.acceleration.y {
  2. switch UIDevice.currentDevice().orientation {
  3. case .Portrait:
  4. dy = -dy
  5. case .PortraitUpsideDown:
  6. break
  7. case .LandscapeRight:
  8. swap(&dx,&dy)
  9. case .LandscapeLeft:
  10. swap(&dx,&dy)
  11. dy = -dy
  12. default:
  13. dx = 0
  14. dy = 0
  15. }
  16. gravity.gravityDirection = CGVector(dx: dx,dy: dy)
  17. }

2)

  1. if var dx = data?.acceleration.x,var dy = data?.acceleration.y {
  2. switch UIDevice.currentDevice().orientation {
  3. case .Portrait:
  4. dy = -dy
  5. case .PortraitUpsideDown:
  6. break
  7. case .LandscapeRight:
  8. break
  9. case .LandscapeLeft:
  10. break
  11. default:
  12. dx = 0
  13. dy = 0
  14. }
  15. gravity.gravityDirection = CGVector(dx: dx,dy: dy)
  16. }

解决方法

我想你正在使用模拟器,所以重力总是与底部正交.

在真实的设备上,行为应该有所不同,因为您将始终至少轻轻地倾斜设备.

猜你在找的iOS相关文章