如何在没有UIInterpolatingMotionEffect类的情况下添加ParallaxEffect

时间:2018-09-25 18:17:04

标签: swift parallax cmmotionmanager swift4.2

在没有UIInterpolatingMotionEffect类的情况下如何执行视差效果。仅在iPhone中具有加速功能?当您向上倾斜手机以达到图像效果时,我想要效果。只是正常的视差效果

我已经尝试过:

func setupParallax() {
        let motion = CMMotionManager()
        motion.startAccelerometerUpdates()
        parallaxImage.frame.origin.x = CGFloat((motion.accelerometerData?.acceleration.x)!)
        parallaxImage.frame.origin.y = CGFloat((motion.accelerometerData?.acceleration.y)!)
    }

1 个答案:

答案 0 :(得分:0)

使用Core Motion。理想情况下,运动管理器的参考系应为CMAttitudeReferenceFrame.xArbitraryCorrectedZVertical,以便您可以通过调用multiply(byInverseOf:)来获得相对于起始姿态的当前姿态。为此,请运行一个重复的计时器并轮询运动管理器的设备运动以获取其姿势。现在使用它来调整视图的变换。