我有一个场景分为3个不同的平面,我想相对于设备在轴上的旋转向左或向右移动这些平面,所以当设备与表面成0度时,平面将打开中央。我在iPod touch(第一代)的游戏主屏幕上看到了这种效果。 我必须使用哪种传感器来产生类似的效果?
答案 0 :(得分:2)
要实现视差效果,请将CoreMotion框架添加到项目中并构建CMMotionManager
。然后,对于具有陀螺仪的设备,您可以使用startDeviceMotionUpdatesToQueue:withHandler:
并检查处理程序块中的motion.attitude.roll
。
对于没有陀螺仪的设备,您可以使用startAccelerometerUpdatesToQueue:withHandler:
并检查accelerometerData.acceleration.x
,也可以使用UIAccelerometer
并实施UIAccelerometerDelegate
。无论哪种方式,您可能都想创建一个低通滤波器来帮助区分重力和线性加速度。 GLGravity项目就是一个例子。
请参阅“iOS事件处理指南”中的Motion Events部分。
答案 1 :(得分:1)
试试这个UIView类别 https://github.com/Przytua/UIView-MWParallax
只需设置1个属性值即可获得所选UIView(或其子类)对象的视差效果