在Swift中用陀螺仪倾斜滚动

时间:2016-11-21 10:54:33

标签: ios swift uiscrollview gyroscope core-motion

我试图在屏幕上水平倾斜我的UIScrollView上的滚动效果。 我有这个函数,我在viewDidLoad()中调用:

func setupMotionManager() {

        motionManager.gyroUpdateInterval = 1/60
        let motionMovingRate = 4.0
        let maxXOffset = self.scrollView.contentSize.width - self.scrollView.frame.size.width
        let minXOffset = CGFloat(0.0)

        motionManager.startGyroUpdates(to: .main, withHandler: { (data, error) in
            if (fabs((data?.rotationRate.y)!) >= 0.1) {
                var targetX = self.scrollView.contentOffset.x - CGFloat(data!.rotationRate.y * motionMovingRate)

                if (targetX > maxXOffset) {
                    targetX = maxXOffset
                } else if (targetX < minXOffset) {
                    targetX = minXOffset
                }

                self.scrollView.contentOffset = CGPoint(x: targetX, y: CGFloat(0.0))
                print(data!.rotationRate.y)
            }
        })

    }

我从这个SO answer获取了代码。 我不知道为什么但它不能正常工作。我可以看到旋转速率正在改变,但scrollView的内容不会移动。 有任何想法吗?求助。

0 个答案:

没有答案
相关问题